modeline does not work in vim
I have a file called .aliases
for bash and zsh, I put this line
# vim: set filetype=bash:
but if I make
: echo &ft
I get conf
Solution 1:
That should work. I tried that line myself and it worked. I could be that your 'modeline' option got set to 'nomodeline'. Try executing this and see what you get.
:verbose set modeline?
That will tell you the value of the 'modeline' option and if not the default, where it was last set.
Some Linux distributions set 'nomodeline' in /etc/vimrc or /usr/share/vim/vimrc as a security measure, even though the security problems with 'modeline' have long been fixed.
Solution 2:
I describe a full debug checklist in this other answer.
I was REALLY stumped on this one because the documentation is not entirely true.
It turns out that in version 8 (and maybe earlier) you cannot use the word set
in your modeline. The documentation describes "the second form" as being /* vim: set ai tw=75: */
but this does not work. You have to use "the first form" // vim: ai tw=75
Note: You can use either of those kinds of comment indicators. Or none at all.
Solution 3:
set modelines=1
(or any non-0 value) in my ~/.vimrc got it working for me.