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?
Зазвичай це (але не обов'язково) відповідає файлевому типу буфера ( :setlocal filetype?
).
Для глибшого погляду
:syntax list
показує всі визначення синтаксису (деякі синтаксиси (можуть) включати синтаксиси іншої мови, наприклад java
, html
для розмітки коментарів JavaDoc).
Ви можете переглянути, якими типами файлів користуються зараз
:verbose set ft ?
Плагін, що обробляє тип файлу, швидше за все, знаходиться в
:e $VIMRUNTIME\ftplugin