2013-07-16 16 views
17

Sto provando a sovrascrivere il set di evidenziazione in un plug-in. Il plugin fa questo:Vim carica i plugin dopo aver caricato vimrc?

highlight! link WordUnderTheCursor Underlined 

In primo luogo, io non sono a conoscenza che ! aggiunto al highlight fa niente. Ma questo è irrilevante.

Fare cose come questo in vimrc

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

non sembra influenzare il comportamento.

Solo quando modifico direttamente lo stile Underlined (che si sente sbagliato) in vimrc, si applica la modifica.

Questa prova che il plug-in è in esecuzione dopo viene eseguito vimrc?

Come posso scollegare lo stile? Non posso davvero dire se questo è solo il plugin che fa qualcosa di creativo e non supportato, o se questo è normale comportamento di Vim. Here is the vimscript itself.

risposta

31

Sì. vimrc viene caricato prima dei plugin.

Se si guarda :h initialization, il passaggio 3 viene caricato vimrc e il passaggio 4 carica i plug-in.

Si può anche vedere che vimrc viene caricato prima dei plugin guardando l'uscita di :scriptnames. scriptname elenca tutti gli script originari nell'ordine in cui sono stati originati e vimrc è la prima cosa che si è originata. (Dai un'occhiata a :h :scriptnames).


Per correggere l'evidenziazione è sufficiente eseguire i comandi di evidenziazione dopo l'origine del plug-in. Per fare ciò, inserisci i file nella directory after della tua directory .vim. (Date un'occhiata a :h after-directory)

Quindi creare il file .vim/after/plugin/hicursorwords.vim con il seguente contenuto

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

Questo farà sì che il plugin per essere acquistato prima di modificare le impostazioni del plugin.

(Questo ovviamente presuppone che non si vuole modificare il plugin)

+1

Impressionante, grazie. Ho già alcuni script 'dopo' che sovrascrivono le impostazioni di sintassi, quindi questo si adatta bene all'intero schema. –

+0

Si noti che '_gvimrc' (per scopi grafici) viene letto _after_ i plugin. Pertanto, è necessario inserire i comandi da token in considerazione in un plug-in in _vimrc e non in _gvimrc. –

9

Oltre scriptnames, per vedere che cosa vim ordine gestisce le cose in all'avvio, è possibile anche uso:

vim --startuptime <file>

quindi registrerà tutte le attività in ordine e quanto tempo impiega ciascuna.

Problemi correlati