Estaba buscando una respuesta a esto, pero aún no he encontrado nada, así que si me perdí algo obvio, me disculpo. Pensé que sería una búsqueda rápida en Google, así que tal vez sea más complicado de lo que pensaba.
Me gustaría poder cargar complementos condicionalmente según el tipo de archivo que estoy editando. Por ejemplo, cuando edito python, no quiero las combinaciones de teclas que se vim-sexp
instalan, pero cuando trabajo en clojure, sí quiero que se cargue ese complemento.
Actualmente estoy usando neovim y patógeno, pero si hay un administrador de complementos diferente que lo haga por mí, estaría abierto a cambiar. Además, si esto existe, ¿ :set syntax whatever
cambia los complementos? Porque eso sería super :)
Gracias de antemano por cualquier ayuda / dirección!
Respuestas:
Puedes hacer esto con Vim-Plug. Ver el archivo Léame :
Creo que tendrá que usar en
:set filetype whatever
lugar deset syntax whatever
habilitar el complemento.(Algún otro administrador de complementos podría permitirle hacer eso, consulte ¿Cuál es la diferencia entre los administradores de complementos vim? )
fuente
En lugar de llamar
execute pathogen#infect()
para cargar todos los complementos, llamepathogen#interpose
a cada complemento, es decir:La API de patógenos no está documentada fuera de la fuente , pero es bastante simple (aunque los nombres de las funciones son oscuros y no descriptivos). También puede usar
pathogen#surround()
para rutas absolutas.Puede cargar complementos condicionalmente con un básico
autocmd
:Si encuentra que tiene muchos de estos casos, incluso podría dividirlo en diferentes caminos:
~/.vim/bundle/always
para los complementos que siempre quieres~/.vim/bundle/<filetype>
para complementos para un tipo de archivo específicoY luego cárgalo así:
De esta manera, no tiene que agregar un montón de
autocmd
s para cada tipo de archivo / complemento.Una vez que se carga un complemento, se carga. Un "plug-in" es simplemente una colección de
function
,command
ymap
definitons. No conozco ninguna forma directa de "descargar" esto.Se hace plugins de carga para un tipo de archivo si y sólo si se utiliza
:set filetype
; En general, siempre se desea utilizar:set filetype
y no:set syntax
, comosyntax
sólo se configurará la resaltado de sintaxis, y no el sangrado y otros ajustes (por ejemploiskeyword
,formatexpr
, etc.).fuente