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

120

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

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

Karthick
источник

Ответы:

109

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

au BufReadPost *.ezt set syntax=html
Benoit
источник
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
204
:set syntax=html
янтарный
источник
10
@pbr: что в точности отвечает на заголовок вопроса.
Скиппи ле Гран Гуру,
2
> «рассматривать расширение файла как файл HTML»
0atman
это то, что я искал :)
Никен
Может помочь узнать, что запуск :set syntaxвернет текущее выделение файла
Ари,
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.

wisbucky
источник