Когда Vim запускает команды в определенном файле при запуске - PullRequest
0 голосов
/ 30 апреля 2020

Я думаю, что, возможно, я видел некоторые подобные вопросы здесь, но у меня нет ничего, что отвечало бы на вопрос, так, как я понимаю. Я немного новичок в использовании Vim, поэтому у меня нет особого понимания его истинного потенциала (помимо того, что он почти безграничен). По сути, у меня есть некоторый пользовательский синтаксис, который я хочу включить при открытии определенного файла в Vim. Чтобы убедиться, что я не испортил реализацию ответа, я выложу здесь команды.

:syntax region Topic start="{==" end="==}"
:syntax region Symbol start="<" end=">"
:highlight Topic guifg=#abcdef
:highlight Symbol guifg=#fedcba

Я, вероятно, могу предположить, что дать людям руководство, чтобы они выяснили точный ответ с коротким прыжком или двумя является оптимальным, но я несколько разочарован необходимостью запуска этой конкретной команды каждый раз, когда я запускаю рассматриваемый файл. Если возможно, что я мог бы поместить, и где бы я поместил, определенную серию символов, которая привела бы к тому, что не нужно было бы вводить эти команды каждый раз, когда я ее открываю?

Извинения, если это обман, я просто не нашел ответов, которые я понял как ответы.

1 Ответ

0 голосов
/ 01 мая 2020

Я думаю, что размещение команд vim внутри функции и вызов этой функции с помощью augroup может работать.

Определите функцию в вашем .vimrc как:

function! Syntax_Highlighter()
    syntax region Topic start="{==" end="==}"
    syntax region Symbol start="<" end=">"
    highlight Topic guifg=#abcdef
    highlight Symbol guifg=#fedcba
endfunction

И затем снова в вашем .vimrc с помощью команды augroup вызовите указанную выше функцию:

augroup highlighter
    au!
    au BufNewFile *.html call Syntax_Highlighter()
augroup END

В приведенном выше фрагменте измените *.html с любым расширением файла, которое вы хотите.

РЕДАКТИРОВАТЬ:

МЕТОД 2:

Если вы хотите настроить комбинацию клавиш для выполнения этих команд, то вместо augroup вы можете использовать autocmd.

autocmd FileType html map ,l :call Syntax_Highlighter()<cr>

Это сопоставит комбинацию клавиш ,, за которой следует l, с вызовом функции Syntax_Highlighter , только если текущий файл имеет расширение html .

Здесь также замените html на требуемое расширение файла.

В первом методе функция будет вызываться всякий раз, когда вы открываете новый файл с соответствующим расширением. Во втором методе функция будет вызываться только , когда вы нажмете комбинацию клавиш внутри файла с соответствующим расширением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...