Плагины загрузки Vim после загрузки vimrc?

17

Я пытаюсь переопределить выделение, установленное в плагине. Плагин делает это:

highlight! link WordUnderTheCursor Underlined   

Во-первых, я не знаю, что ! добавлено в highlight . Но это не имеет значения.

Выполнение подобных действий в vimrc

highlight clear WordUnderTheCursor                             
highlight WordUnderTheCursor cterm=bold ctermfg=254 ctermbg=160

Не влияет на поведение.

Только когда я напрямую изменяю стиль Underlined (который чувствует себя не так) в vimrc, применяется ли изменение.

Является ли это доказательством того, что плагин запускается после работает vimrc?

Как я могу отменить стиль? Я не могу сказать, действительно ли это плагин, делающий что-то творческое и неподдерживаемое, или если это нормальное поведение Vim. Вот сам vimscript .

    
задан Steven Lu 17.07.2013 в 00:45
источник

2 ответа

32

Да. vimrc загружается перед плагинами.

Если вы посмотрите :h initialization , вы увидите, что шаг 3 - это загрузка vimrc и шаг 4 это плагины загрузки.

Вы также можете увидеть, что vimrc загружается перед плагинами, просматривая вывод :scriptnames . scriptnames перечисляет все исходные сценарии в том порядке, в котором они были получены, а vimrc - первое, что было получено. (Посмотрите :h :scriptnames ).

Чтобы исправить выделение, вам просто нужно запустить команды выделения после получения плагина. Для этого вы помещаете файлы в каталог after вашего каталога .vim . (Посмотрите :h after-directory )

Итак, создайте файл .vim/after/plugin/hicursorwords.vim со следующим содержимым

highlight clear WordUnderTheCursor                             
highlight WordUnderTheCursor cterm=bold ctermfg=254 ctermbg=160

Это приведет к тому, что плагин будет отправлен до изменения настроек плагина.

(Это, конечно, предполагает, что вы не хотите редактировать плагин)

    
ответ дан FDinoff 17.07.2013 в 01:34
источник
  • Удивительно, спасибо. У меня уже есть несколько после сценариев, которые переопределяют настройки синтаксиса, так что это прекрасно вписывается в эту целую схему. –  Steven Lu 17.07.2013 в 02:16
  • Имейте в виду, что _gvimrc (для графической цели) считывается после плагинов. Поэтому вам нужно вводить команды, которые должны быть признаны в плагине в _vimrc, а не _gvimrc. –  Olivier Faucheux 24.03.2017 в 10:31
9

Помимо scriptnames , чтобы увидеть, какой порядок работы vim запускается при запуске, вы можете также использовать:

vim --startuptime <file>

, чтобы он записывал все задачи, которые он выполняет, и сколько времени занимает каждый.

    
ответ дан Cometsong 17.07.2013 в 11:13
источник