2009-12-28 13 views
14

Digamos que cargo un archivo .txt en Vim. Entonces quiero cambiar el filetype=html, pero también quiero que se cargue un ftplugin asociado. ¿Cómo puedo hacer esto?¿Cómo cargar manualmente un ftplugin después del inicio en Vim?

He intentado cosas como: :set filetype plugin on y :set filtype plugin_name encendido y también en :filetype plugin_name, etc, etc, pero me parece que no puede cargar manualmente el ftplugin. ¿Alguna sugerencia?

He intentado :filetype=html y luego :filetype plugin on y otras combinaciones en vano.

EDITAR: No pude "completamente" resolver esto con ninguna de las respuestas (pero puede ser algo individual en mi configuración). Sin embargo, las respuestas de Pierre fueron bastante buenas así que le doy la marca verde.

Respuesta

8

Estoy bastante seguro de que cuando se cambia el tipo de un archivo usando :set ft=X se cargará automáticamente el plugin asociado en la carpeta de .vim/ftplugin. P.ej. :set ft=html cargaría .vim/ftplugin/html.vim donde cargaría cualquier complemento asociado. Sin embargo, las cargas de complemento BufEnter y BufNew asociadas con los archivos html no se cargarán, ya que establecer un nuevo tipo de archivo no desencadena estos eventos. Por lo tanto, si tiene complementos html específicos en su .vimrc que están cargados con BufNew o BufEnter, puede colocarlos en un archivo .vim/ftpluging/html.vim.

Siempre puede agregar una línea de modo a su archivo de texto que cambie el tipo de archivo. P.ej. <!-- vim: ft=html -->.

+0

Tengo problemas específicamente con esto para el plugin snipMate que tiene uno de sus scripts en ~/.vim/ftplugin/- Lo consigo utilizando el complemento de texto de firefox que abre la página web como un archivo .txt. Tengo que hacer esto porque estoy trabajando con un CMS. – Rob

+0

El archivo exacto que NO se carga es: ~/.vim/ftplugin/html_snip_helper.vim (que snipMate usa para cerrar etiquetas html, por ejemplo, escribir una r y presionar TAB crea
) – Rob

+2

Las secuencias de comandos de la carpeta ftplugin DEBEN tener el nombre del tipo de archivo, por ej. python.vim, ruby.vim, html.vim. Estos se definen en el filetype.vim. Supongo que html_snip_header.vim es cargado por el plugin snipMate que se carga en el directorio de plugins ¿verdad? Agregue un archivo html.vim bajo ftplugin que carga html_snip_header.vim directamente y debería tener el mismo efecto. –

0
:f something.html 
:w 
:e 
+0

¿Lo intentó? Funciona;) –

+0

Lo siento, sí, intenté esto en vano. Creo que Pierre tiene un punto en sus comentarios arriba debajo de su publicación; Trataré de poner un html.vim para obtener el otro ftplugin. – Rob

+0

He instalado snipMate. Aquí hay una secuencia de mis comandos: vi a.txt : f a.cpp: w: e luego ingreso y presiono y lo inserta para el ciclo como está documentado. ¿Tal vez le darás otra oportunidad? Cuando lo haga: e vim realiza exactamente la misma secuencia de acciones que abrir el archivo como "vi ", que implica cargar todos los complementos necesarios. –

3
:filetype on 
:set filetype=html 
+0

Gracias. Lo intenté pero no funcionó para mí. – Rob

+0

Extraño. Lo intenté y me funciona. Algo extraño sucede ... – maxaposteriori

+6

Filetype tiene tres configuraciones: detección, carga de complementos e indentación. : filetype on solo configurará la detección, prueba ": filetype plugin on" o incluso ": filetype plugin indent on". – c089

1

Vim carga automáticamente el plugin correcto cuando se cambia el tipo de archivo

:set ft=python 

Puede iniciar vim en modo detallado:

vim -V 

Esto va a mostrar lo que vim se está ejecutando. Si abre un archivo y configura manualmente el tipo de archivo, vim mostrará si está cargando el complemento correcto.

3

Acabo de tener la misma situación donde ftplugins no se estaban cargando aunque tenía un archivo Perl abierto. Resulta que mi copia de Vim (de Git for Windows) no vino con ftplugin.vim y ftplugof.vim

Así es como llegué a esa realización:

  1. :filetype

    • cheque que plug-in tipo de archivo es de hecho encendido.

  2. :scriptnames

    • impresión de la lista de secuencias de comandos sourced, descubrió ninguna secuencia de comandos de ftplugin\ es originario.
    • No me di cuenta en ese momento, pero debería haber notado que no vi ftplugin.vim allí.

  3. cheque si el directorio Vim ({git-path}/share/vim/vim{version}/) tiene las ftplugin.vim y ftplugof.vim

    • estos archivos se obtienen cuando se ejecuta :filetype plugin on y :filetype plugin off

Para solucionar este problema, Agarré los archivos faltantes del Vim runtime files y copiado a donde debería ir.

Cuestiones relacionadas