3

My to-do list is a plain text .txt file that I load in Vim. In .txt files Vim has always coloured hash marks (#) and the text following them on the same line, which I use to mark out urgent to-do items. The other day this highlighting disappeared and I can't for the life of me see how to restore it. I've turned on all the syntax and filetype commands I can find. Should I have a text.vim or txt.vim syntax file that I might've deleted without realising? It feels like there should be a simple solution, but I can't find anything approaching a simple solution from googling round - I'm certainly not going to reinstall, write a custom syntax file, use a complex script, etc., I just want the default behaviour back.

  • What platform are you running on? Windows, Mac OS or Linux (which distribution)? – Benjamin Bannier Nov 30 '10 at 14:22
6

I don't think that your Vim is broken. Try putting a hash mark (#) at the beginning of the first line in the file. When Vim sees this, it sets the filetype to conf (for a configuration file). As far as I know, Vim does not syntax color vanilla text files.

  • 2
    The straight forward way to force a filetype is a modeline, e.g. # vim: set filetype=conf :. Also, asciidoc comes with syntax highlighting for .txt files (but no, hashed lines are not colored specially). – Benjamin Bannier Nov 30 '10 at 14:46
  • Wow! erichui and honk, that did the trick - I set filetype to Generic config, saved and quit and all is well again in todo-land. Thank you! – Vim user Nov 30 '10 at 14:54
  • For me, this did not work. I had to use modelines (see my answer). However, thanks for leading me to conf which, unlinke config, does not highlight numbers and some keywords. – Scz Apr 22 '16 at 7:45
  • # in the beginning text file is not working(i.e syntax highlight as conf) in gvim anymore after I updated to 8.0.3 – Jean Jan 24 at 14:40
0

Vim supports modelines. To force coloring the file as conf (erichui's answer), put the following line at the end or beginning of your file:

# vim: syntax=conf

This sets vim's internal variable syntax to conf.

Note: you could also set filetype (ft) instead of syntax.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.