Vim, patogeno e ordine di caricamento dei file ftplugin
-
21-12-2019 - |
Domanda
Ho usato Vim e patogen per un po ', e le cose stavano lavorando bene , ma di recente ho iniziato ad avere problemi di ordinazione di caricamento con la mia configurazione ftplugin.
Il problema specifico che sto facendo ora è che python-mode sta sovrascrivendo il mio Impostazioni ftplugin. Ho un ~/.vim/ftplugin/python.vim
che contiene la seguente riga:
setlocal textwidth=119
.
Python-mode viene fornito con il proprio file ftplugin, che imposta anche textwidth
, in ~/.vim/bundle/python-mode/ftplugin/python/pymode.vim
.
Il problema è che Vim sta ora caricando il file ftplugin della modalità Python dopo il mio file ftplugin, quindi sto finendo con il suo textwidth=79
. Ho dovuto reinstallare di recente Macports, e penso che qualcosa debba essere cambiato nella configurazione azionaria.
Ho provato vari trucchi che implicano la rotazione del riposo FileType / Plugin prima di richiamare il patogeno, per Varie Altro risposte, ma nessuno di loro aiuta.
Attraverso l'uso di verbose set textwidth?
e alcuni debug di echomsg
, so che entrambi i file ftplugin vengono invocati e che vengono invocati nel ordine sbagliato (per i miei bisogni).
C'è un modo per forzare Vim / Patogeno per invocare i miei file ftplugin dopo quelli dei plugin?
Ho addirittura provato a mettere le mie impostazioni in ~/.vim/after/plugin/pymode.vim
, ma è caricato immediatamente dopo che il patogeno imposta il plugin, quindi viene ancora eseguito prima dei file ftplugin
, che vengono caricati solo una volta modificata un file Python.
Soluzione
Si scopre che forse questo non ha mai funzionato come ho pensato.Non mi rendevo conto che Vim ha anche supportato ~/.vim/after/ftplugin
, quindi sono stato in grado di spostare le mie sostituzioni in ~/.vim/after/ftplugin/python.vim
e ottenere il comportamento che mi aspettavo.Sono loay per rispondere alle mie domande su così, ma spero che questo aiuterà qualcun altro.
Altri suggerimenti
Plain Vim carica gli script del plug-in in ordine alfabetico .Questo è da :help load-plugins
... all directories in the 'runtimepath' option will be
searched for the "plugin" sub-directory and all files ending in ".vim"
will be sourced (in alphabetical order per directory), also in
subdirectories.
.
In modo da poter impostare l'ordine di caricamento del plugin rinominando <filetype>_plugin.vim
a <filetype>/35plugin.vim
.35 è il tuo ordine di caricamento desiderato.Penso che questo dovrebbe funzionare anche con patogeno rinominando le directory dei plugin all'interno del bundle
, ma non l'ho testata.
.Sto ancora cercando una risposta più generale a questo problema di caricamento
Per quanto ne so, non puoi davvero farlo con patogeno.È davvero facile con Neobundle.L'agente patogeno è davvero minimo, non ti fornisce molta flessibilità: fa solo una cosa e lo fa bene.Se stai cercando configurabilità, penso che tu stia usando lo strumento sbagliato.
Modifica: non proprio sicuro dei ftplugins, ma i bundle in generale sono caricati come si specificano (con Vundle / Neobundle).Quindi mi rendo conto che questo forse non è il più rilevante delle risposte.