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)? Nov 30, 2010 at 14:22

2 Answers 2


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.

  • 4
    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). Nov 30, 2010 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, 2010 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, 2016 at 7:45
  • 1
    # 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, 2019 at 14:40

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.

  • Put it into the vimrcto enable this for all txt files: echo "autocmd BufRead,BufNewFile *.txt set syntax=conf" >> ~/.vimrc
    – dr0i
    Apr 17, 2020 at 9:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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