У меня есть файл .aliases
для bash и zsh, я поставил эту строку
# vim: set filetype=bash:
но если я сделаю
: echo &ft
Я получаю conf
Это должно работать. Я попробовал эту линию сам, и это сработало. Я мог бы быть, что ваша опция 'modeline' была установлена на 'nomodeline'. Попробуйте выполнить это и посмотрите, что вы получите.
:verbose set modeline?
Это скажет вам значение параметра 'modeline' и, если не значение по умолчанию, где он был установлен в последний раз.
Некоторые дистрибутивы Linux устанавливают nomodeline в /etc /vimrc или /usr /share /vim /vimrc в качестве меры безопасности, хотя проблемы безопасности с modeline уже давно исправлены.
set modelines=1
(или любое значение, отличное от 0) в моем ~/.vimrc, это работает на меня.
Я опишу полный контрольный список отладки в этом другом ответе.
Я был ДЕЙСТВИТЕЛЬНО озадачен этим, потому что документация не совсем верна.
Оказывается, в версии 8 (а может и раньше) вы не можете использовать слово, set
в вашей моделине. Документация описывает "вторую форму" как /* vim: set ai tw=75: */
но это не работает. Вы должны использовать "первую форму" // vim: ai tw=75
Примечание. Вы можете использовать любой из этих индикаторов комментариев. Или нет вообще.
в ~/.vimrc вам нужно установить следующее:
set nocompatible
filetype plugin on
set modeline
Добавление всего лишь следующего к моему ~/.vimrc
работало для меня на моем компьютере с Funtoo Linux:
set modeline
Так как это похоже на поиски:
У меня такая же проблема:
# vim: set filetype=sh:
не работает, в результате чего ft = conf также. без моделин в моем ~/.bash_alias, ft пусто, так что что-то меняется.
в то время как
# vim: filetype=sh:
работал. последнее присутствие ":" кажется несущественным.
Я на OSX с вареной версией Vim8, для записей.
это странно, потому что от моделина помогают оба
[text]{white}{vi:|vim:|ex:}[white]{options}
а также
[text]{white}{vi:|vim:|Vim:|ex:}[white]se[t] {options}:[text]
кажется, поддерживается.
Выход из
verbose set ft?
с "vim:filetype = sh" является
filetype=sh
Last set from modeline
без моделин:
filetype=
с помощью "vim:set filetype = sh"
filetype=conf
Last set from /usr/local/Cellar/vim/8.0.1350/share/vim/vim80/filetype.vim
Где-то в моем conf может быть побочный эффект, но не совместимый синтаксис моделин - единственный, который работает, как и ожидалось.