Vim - это синтаксическая подсветка моего файла забавным способом, и я хочу знать, какой синтаксический файл отвечает за это поведение. Как узнать, какие файлы синтаксиса загружены vim?
Vim - это синтаксическая подсветка моего файла забавным способом, и я хочу знать, какой синтаксический файл отвечает за это поведение. Как узнать, какие файлы синтаксиса загружены vim?
Ответы:
Чтобы узнать, какие файлы Vim действительно загрузили, выполните
:scriptnames
:echo b:current_syntax
. Чтобы увидеть элементы синтаксиса, действующие в настоящее время, выполните действия, предложенные Ingo, и выполните их :syntax list
. Последнее может помочь, если элементы синтаксиса из более чем одного файла синтаксиса действуют, как отметил Инго.
/usr/share/vim/vim73/filetype.vim
. После использования вышеуказанной команды я понял, что она использует версию MacVim в ~/Applications/MacVim.app/Contents/Resources/vim/runtime/filetype.vim
. Если у вас установлен MacVim, убедитесь, что вы изменили правильный файл.
/usr/share/vim/vim81/syntax/cf.vim
для меня). Я установил пользовательский cf.vim, потому что стандартный датирован. :scriptnames
показывает оба файла. Значение по умолчанию ниже в списке скриптов; Тем не менее, первый используется. Если вы посмотрите /usr/share/vim/vim81/syntax/cf.vim
, есть охранник if exists("b:current_syntax") finish endif
. Так что в моем случае это scriptnames
было полезно, но мне пришлось копать немного глубже.
Синтаксис для текущего буфера может быть запрошен через
:setlocal syntax?
Обычно (но не обязательно) соответствует filetype буфера ( :setlocal filetype?
).
Для более глубокого взгляда,
:syntax list
показывает все определения синтаксиса (некоторые синтаксисы (могут) включают синтаксисы других языков, например java
, html
для разметки комментариев JavaDoc).
Вы можете просмотреть, какие типы файлов в настоящее время используются и
:verbose set ft ?
Плагин, обрабатывающий тип файла, скорее всего находится в
:e $VIMRUNTIME\ftplugin