
У меня есть файл, который называется .aliases
для bash и zsh, я вставляю эту строку
# vim: set filetype=bash:
но если я сделаю
: echo &ft
я получилconf
решение1
Это должно сработать. Я сам попробовал эту строку, и она сработала. Возможно, ваша опция 'modeline' установлена на 'nomodeline'. Попробуйте выполнить это и посмотрите, что получится.
:verbose set modeline?
Это покажет вам значение параметра «modeline» и, если это не значение по умолчанию, где оно было установлено в последний раз.
Некоторые дистрибутивы Linux устанавливают «nomodeline» в /etc/vimrc или /usr/share/vim/vimrc в качестве меры безопасности, хотя проблемы безопасности с «modeline» давно исправлены.
решение2
Я описываюполный контрольный список отладки в этом другом ответе.
Я был ДЕЙСТВИТЕЛЬНО озадачен этим, потому чтодокументацияявляетсяне совсемистинный.
Оказывается, в версии 8 (а может и раньше) нельзя использовать это слово set
в modeline. В документации описывается "вторая форма", /* vim: set ai tw=75: */
но это не работает. Нужно использовать "первую форму"// vim: ai tw=75
Примечание: Вы можете использовать любой из этих видов индикаторов комментариев. Или не использовать вообще.
решение3
set modelines=1
(или любое ненулевое значение) в моем ~/.vimrc заставило меня это работать.
решение4
Добавление всего лишь следующего к тому, что ~/.vimrc
сработало у меня на моем компьютере Funtoo Linux:
set modeline