Как заставить пакет Vim [matchit] работать со смешанным html & js файлом? - PullRequest
0 голосов
/ 03 октября 2018

Vim имеет пакет под названием Matchit, который помогает вам переходить от тега к тегу с помощью клавиши «%».Это очень полезно в html-файлах, поскольку вы можете переходить от начала к концу, а также начинать с «<» до конца «>».Кажется, что способ перехода по тегам работает так, что он меняется от языка к языку.Описанное выше поведение останавливается в файле javascript, и происходит переход по тегам (), {} и т. Д.

У меня есть следующая проблема:

У меня есть файл .tpl,который содержит как html, так и javascript, но переход% tag для html-элементов больше не работает.Как включить смешанное поведение - прыжки в стиле html и прыжки в стиле js?Спасибо.

1 Ответ

0 голосов
/ 04 октября 2018

%, переходящий к (), {}, [], основан на встроенной опции 'matchpairs'.Плагин matchit основан на этом и позволяет выполнять более сложные переходы (например, теги HTML).

Поскольку тип файла HTML просто расширяет параметр 'matchpairs', вы можете просто использовать этот тип файла, также дляфайлы в смешанном режиме.(Во всяком случае, многие HTML-файлы содержат фрагменты JavaScript, так что это хорошо поддерживаемая комбинация.)

Для меня *.tpl по умолчанию определяется как filetype=smarty.Этот тип файла (в Vim 8.1) предоставляет только синтаксический сценарий, но без параметров типа файла.

Вы можете наследовать параметры типа файла HTML (которые включают определения соответствия), создав ~/.vim/ftplugin/smarty.vim:

if exists('b:did_ftplugin') | finish | endif
runtime! ftplugin/html.vim
runtime! ftplugin/html_*.vim ftplugin/html/*.vim
let b:did_ftplugin = 1
...