Как заставить vim выделить файл как html синтаксисом?


120

Как настроить подсветку синтаксиса vim для обработки расширения файла как файла html?

Я использую шаблон ez, поэтому расширение файла - .ezt. Но по большей части это обычный html-код.

Ответы:


109

Вы также можете поместить это в свой .vimrc:

au BufReadPost *.ezt set syntax=html

E216: Нет такой группы или события: BufLoad * .ezt set syntax = html ... что я делаю не так?
Karthick

2
По моему опыту, этот подход потерпит неудачу, если вы укажете точное имя файла, например .myspecialdotfile. Ему где-то нужна звезда, чтобы работать, даже если теоретически в этом нет необходимости.
SeldomNeedy

У меня есть это в моем .vimrcфайле для файлов Dockerfiles, которые имеют расширения для разных целей. autocmd BufNewFile, BufRead Dockerfile * set filetype = docker Простое использование Dockerfile*предотвращает работу подсветки синтаксиса при использовании vi Dockerfile- добавление обратной косой черты позволяет ему работать для Dockerfile/ Dockerfile.somethingиDockerfilesomething
Android Control


26

Взгляните на эту тему викии Vim . Несколько полезных советов:

  • Как уже упоминалось в других ответах, вы можете использовать команду vim set для установки синтаксиса. :set syntax=<type>где <type>что - то вроде perl, html, phpи т.д.

  • Существует еще один механизм, который можно использовать для управления подсветкой синтаксиса, называемый filetype, или ftдля краткости. Подобный синтаксис, вы даете ему тип , как это: :set filetype=html. Другие типы файлов могут perl, phpи т.д.

  • Иногда vim «забывает», какой синтаксис использовать, особенно если вы смешиваете вместе такие вещи, как php и html. Используйте сочетание клавиш Ctrl+ L( <C-L>), чтобы vim обновил выделение.


Лучший ответ! +!
Дж. Аллан

17

Обратите внимание, что :set syntax=xmlподсвечивается правильно, но при попытке автоматического отступа файла (т gg=G. Е. При запуске ) происходит сбой .

Когда я переключился на :set filetype=xml, выделение работало правильно, и файл имел правильный отступ.


14

В файле .php (или файле html) вы можете использовать Vim Modeline для принудительного выполнения определенных команд или настроек:

 1 /* vim: syntax=javascript
 2  *
 3  * .submit_norefresh()
 ~
 ~

2
Вы имеете в виду Modeline
Шаммел Ли

Иногда au ...настройки, связанные с синтаксисом , в моем случае ~/.vimrcигнорируются для определенных файлов (предположительно из-за измененных метаданных?). Помимо копирования содержимого этого файла в новый файл, работает установка строки режима в верхней части этого файла. Например, для сценария BASH добавление второй строки # vim: syntax=shпосле shebang (первая строка:), #!/bin/bashпохоже, работает надежно. Поскольку это в основном «комментарий», я просто включаю обе строки в свой sbbфрагмент («shebang bash»).
Виктория Стюарт

13

Чтобы сделать это автоматически, добавьте эту строку в свой ~/.vimrc:

autocmd BufNewFile,BufRead *.ezt set filetype=html

Если вы хотите просто сделать это для текущего файла, введите:

:set filetype=html

Вы также можете заменить syntaxвместо filetype, но filetypeвлияет на большее количество вещейsyntax (включая подсветку синтаксиса, правила отступов и плагины), поэтому обычно вы должны использовать, filetypeесли только вы не хотите повлиять syntax.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.