2010-05-22 9 views
26

Tengo Vim configurado para usar el excelente plugin NERDTree. Sin embargo, hay algunos entornos en los que no quiero que se cargue este complemento.¿Cómo se desactiva un complemento específico en Vim?

En mi .vimrc tengo una sección que solo se ejecuta cuando las variables de entorno específicas son verdaderas. En una de estas secciones me gustaría desactivar la carga de NERDTree, pero toda la información que he encontrado indica cómo desactivar todos los complementos, no solo uno.

¿Podría alguien demostrar cómo desactivar la carga de un complemento específico en Vim?

Respuesta

25

La mayoría de los complementos tienen un protector de (re) inclusión.

Abra el complemento, vea el nombre del guardia, si lo hay (si no, agregue uno solo y póngase en contacto con el autor para que lo arregle) y finalmente establezca su valor en 1 en su .vimrc. Eso es todo.

No puedo ser más específico como "abrir, y buscar el guardia", ya que no todos los complementos usan la misma política de nombres de guardias. Sin embargo, a menudo es g:loaded_pluginname.

En cuanto a ftplugins, se vuelve más complicado. El guardia es una variable de buffer local. Como tal, no se puede especificar en su .vimrc (ya que se aplicaría solo al primer buffer que abra). La manera más fácil sería mover su ftplugin de .vim/ftplugin a .vim/after/ftplugin, y establecer el protector antirreinclusión relevante en 1 en un ftplugin en su jerarquía non-after. Siempre y cuando ftplugin no espere colocarse en after/ (o al contrario, debería estar bien). Nota: la mayoría de los ftplugins creen que son únicos y (erróneamente) usan la variable b:did_ftplugin como reinclusion guard.

+1

mayoría de los guardias que he visto utilizar una variable llamada 'loaded_ '. –

+0

Necesito desactivar Eclim, en su lugar usa 'g: EclimDisabled'. –

+0

Si desea desactivar un complemento temporalmente para una sola sesión de Vim, use esto para iniciar Vim: 'vim --cmd" let g: loaded_ = 1 "...' – Sameer

1

añadir esta línea a su .vimrc

let g:loaded_nerdtree_exec_menuitem = 1 
+0

Gracias por la sugerencia –

Cuestiones relacionadas