Quando utilizzare la directory after /?


14

Capisco che è il posto dove mettere le cose che dovrebbero avere l'ultima parola e non essere sovrascritte da un'altra fonte, ma non sono chiaro su come decidere quando mettere qualcosa, diciamo, ~/.vim/after/ftplugin/piuttosto che ~/.vim/ftplugin/.

Le persone generalmente usano ~/.vim/ftplugin/e spostano le cose solo ~/.vim/after/ftplugin/se osservano comportamenti indesiderati o le inseriscono subito nella directory after?

Risposte:


20

In genere, se si desidera aggiungere il proprio plug-in o sostituire un plug-in standard con il proprio, andrebbe in ~/.vim/plugino ~/.vim/ftplugin. Se invece si desidera mantenere la funzionalità di un plug-in esistente ma aggiungerlo ad esso o modificare solo alcune impostazioni effettuate da esso, il plug-in andrebbe in ~/.vim/after/plugino ~/.vim/after/ftplugin.


Per qualche ragione ho sempre pensato che Vim cercasse il runtimepath e provenga da ogni file che corrispondeva ai criteri di ricerca, piuttosto che semplicemente approvvigionando la prima corrispondenza trovata. Sembra che le cose nella directory after ottengano quel tipo di trattamento "in aggiunta al", ma forse tutto il resto viene trattato più come la variabile PATH Unix, dove vince la prima partita?
Ivan

5
Vim trova ogni file che soddisfa i criteri di ricerca, ma i plugin scritti correttamente hanno un test vicino alla parte superiore del modulo if exists("g:loaded_<plugin name>") finish endif let g:loaded_<plugin name> = 1,. Il plug-in che viene caricato per primo "vince" e i plug-in successivi con lo stesso nome escono presto tramite il finishcomando. Ecco come un plug-in nella tua ~/.vim/plugindirectory, ad esempio, può impedire il $VIMRUNTIME/plugincaricamento completo di un plug-in . Quel test non è incluso nei afterfile dei plugin.
garyjohn,

Ok, penso di averlo capito adesso. Dal momento che tutti i file corrispondenti saranno di provenienza, utilizzare un finishguard-clausola di quando si desidera caricare solo la prima partita, e utilizzare la directory dopo-( senza un finishguard-clausola) quando è necessario sostituire un ambiente che è influenzata da uno degli altri fonti.
Ivan

1

se vanilla vim riconosce un determinato tipo di file e si desidera modificare il comportamento fornito, le proprie impostazioni entrano in ~/.vim/after/ftplugin/

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.