Подтвердить что ты не робот

Как обновить Vim до цветных новых элементов html

Мне интересно, как я могу установить vim для окраски новых элементов html5 (т.е. "холст" и "видео" ), как это происходит с существующими элементами "script", "body" (или зарезервированными словами на других языках например, python "def" ) и т.д. Текущая версия от MacPorts, обычно используемая в эмуляторе терминала.

4b9b3361

Ответ 1

html.vim - это файл синтаксиса, который Vim консультирует, чтобы определить, какие теги будут окрашены. Расположение этого будет зависеть от установки Vim. Внутри этого файла синтаксиса вы увидите много строк, которые выглядят следующим образом:

" new html 4.0 tags
syn keyword htmlTagName contained abbr acronym bdo button col label
syn keyword htmlTagName contained colgroup del fieldset iframe ins legend
syn keyword htmlTagName contained object optgroup q s tbody tfoot thead

Эти строки определяют ключевые слова синтаксиса. В этом случае они специально определяют имена тегов HTML. Первая строка сообщает Vim о цвете тегов abbr, acronym, bdo, button, col и label. Вы можете сообщить Vim о цвете дополнительных тегов со следующим синтаксисом:

" new html 5 tags
syn keyword htmlTagName contained video canvas

Теперь Vim будет окрашивать теги video и canvas и любые дополнительные ключевые слова, которые вы добавляете.

Однако, если вы обновите встроенный html.vim, он будет перезаписан при следующем обновлении Vim, поэтому лучше всего добавить свои правила к этим встроенным. Для этого создайте путь к папке after/syntax в вашей папке .vim и поместите в нее html.vim.

В этом gist имеется большое количество элементов HTML 5 и аргументов, упомянутых ниже @user240515. Вставьте содержимое этого в новое созданное html.vim.

Обратитесь к :help html.vim для получения дополнительной информации.

Ответ 2

Спасибо за этот вопрос и спасибо за принятый ответ! Это полный список новых тегов для добавления для html 5, поскольку они определены на момент написания:

" new html 5 tags
syn keyword htmlTagName contained article aside audio canvas command datalist
syn keyword htmlTagName contained details embed figcaption figure footer header
syn keyword htmlTagName contained hgroup keygen mark meter nav output progress
syn keyword htmlTagName contained rp rt ruby section source summary time video

Ответ 5

Отступы могут поддерживаться с использованием подхода, аналогичного описанному michaelmichael для расширения файла синтаксиса html.vim. Если у вас еще нет html.vim в ~/.vim/indent, вы можете создать его с содержимым здесь. Внутри ~/.vim/indent/html.vim вы увидите набор вызовов функций, собирающих список имен элементов HTML, который выглядит следующим образом:

" [-- <ELEMENT ? - - ...> --]
call <SID>HtmlIndentPush('a')
call <SID>HtmlIndentPush('abbr')
call <SID>HtmlIndentPush('acronym')
call <SID>HtmlIndentPush('address')
" ...and many more...

Эти строки определяют теги, которые будут вызывать отступ основного тега. Расширьте этот список с помощью любых тегов HTML5, которые вы хотите иметь отступы. Я добавил следующее в конец этого списка:

" New HTML 5 elements
call<SID>HtmlIndentPush('table')
call<SID>HtmlIndentPush('article')
call<SID>HtmlIndentPush('aside')
call<SID>HtmlIndentPush('audio')
call<SID>HtmlIndentPush('canvas')
call<SID>HtmlIndentPush('command')
call<SID>HtmlIndentPush('datalist')
call<SID>HtmlIndentPush('details')
call<SID>HtmlIndentPush('embed')
call<SID>HtmlIndentPush('figcaption')
call<SID>HtmlIndentPush('figure')
call<SID>HtmlIndentPush('footer')
call<SID>HtmlIndentPush('header')
call<SID>HtmlIndentPush('hgroup')
call<SID>HtmlIndentPush('keygen')
call<SID>HtmlIndentPush('mark')
call<SID>HtmlIndentPush('meter')
call<SID>HtmlIndentPush('nav')
call<SID>HtmlIndentPush('output')
call<SID>HtmlIndentPush('progress')
call<SID>HtmlIndentPush('rp')
call<SID>HtmlIndentPush('rt')
call<SID>HtmlIndentPush('ruby')
call<SID>HtmlIndentPush('section')
call<SID>HtmlIndentPush('source')
call<SID>HtmlIndentPush('summary')
call<SID>HtmlIndentPush('time')
call<SID>HtmlIndentPush('video')

Отступ теперь будет срабатывать по тегам HTML5, перечисленным выше.

Ответ 6

Я добавил файл indent html5 в fork ofthree/html5.vim на основе вышеприведенных предложений.

См. http://github.com/briangershon/html5.vim

Ответ 7

Файл syntax/html.vim, который поставляется вместе с vim (8.0), очень устарел. Хороший способ обновить подсветку синтаксиса - использовать хорошо укомплектованный плагин, например vim-polygot, который хранится намного больше, Дата. Он html.vim синтаксис поддерживает canvas, video, section и main (другие ответы не поддерживаются), чтобы назвать несколько.