¿Cómo instalo un complemento en Vim / vi?


96

¿Cómo instalo un complemento en Vim?

Importa:

  • Si uso vi o Vim?
  • ¿Si uso gVim?
  • ¿Qué versión de Vim estoy usando?
  • ¿Cuál es mi sistema operativo?

Respuestas:


65

Para instalar un complemento, necesitamos saber en qué forma viene. Puede ser:

Se .vimsupone que se debe colocar un solo archivo en el .vim/plugindirectorio.

Se puede instalar un archivo Vimball abriéndolo en Vim y ejecutándolo :source %.

Se puede instalar un conjunto de archivos en el diseño de directorio estándar copiándolos .vimo utilizando un administrador de paquetes de complementos .

Los complementos pueden depender de ciertas características. Por lo tanto:

  • Puede importar si estás usando Vi o Vim,
  • Puede importar si está utilizando gVim o no (gVim generalmente tiene más funciones habilitadas en tiempo de compilación que Vim en la misma distribución).
  • Puede importar en qué versión de Vim se encuentre, ya que es posible que se haya agregado una función después de su versión de Vim.
  • Puede importar en qué sistema operativo se encuentre, especialmente si el complemento llama a comandos externos.

Sin embargo, para la mayoría de los complementos, puede que no importe.


99
Definitivamente importa si estás usando Vi: el concepto de complementos no existe para Vi. Por supuesto, escribir vien cualquier cuadro moderno probablemente solo se iniciará vimcon algunas funciones desactivadas. Dudo que muchas personas tengan acceso a Vi real en estos días.
tommcdo

37

vim-plug

Me gusta usar el administrador de complementos vim-plug .

El problema con la instalación manual de un complemento es que es bastante difícil eliminar un complemento; a menudo tiene varios archivos diferentes en diferentes directorios, debe buscarlos manualmente y eliminarlos.

Actualizar los problemas es igualmente difícil: ¿y si autoload/old-name.vimse le cambia el nombre autoload/new-name.vim? Ahora tiene tanto una versión antigua y nueva de un plugin.

vim-plugresuelve esto almacenando cada complemento en su propio directorio; también incluye el comando para instalar / eliminar fácilmente un complemento, por lo que no tiene que molestarse con descomprimir complementos y similares.

Una ventaja clave de vim-plug sobre Pathogen es que vim-plug le permite instalar y eliminar complementos más fácilmente. Todo lo que hace Pathogen es permitir que cada complemento esté en un directorio contenido separado.

vim-plug se basa en git ; para MS Windows, desea msysgit .

Puede definir complementos en su vimrc así:

call plug#begin('~/.vim/plugged')

" For MS Windows, this is probably better:
"call plug#begin('~/vimfiles/plugged')

Plug 'embear/vim-localvimrc'
Plug 'kchmck/vim-coffee-script'
" ... etc

call plug#end()

Luego reinicie Vim y luego instale complementos con:

:PlugInstall

Esto colocará los complementos en ~/.vim/pluggedo $HOME\vimfiles\pluggedpara MS Windows.

Puede agregar este fragmento de las preguntas frecuentes a su archivo vimrc antes de la plug#begin()llamada:

if empty(glob('~/.vim/autoload/plug.vim'))
  silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
    \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
  autocmd VimEnter * PlugInstall
endif

Tenga en cuenta que necesita curlque esto funcione. Casi siempre está disponible en Linux y OSX, pero no en MS Windows; así que este truco no funcionará allí ...

Para eliminar un complemento, elimínelo del archivo vimrc y ejecute:

:PlugClean

Tenga en cuenta que vim-plug no admite la instalación de scripts desde el sitio web de scripts de Vim, pero esos scripts se reflejan en GitHub , por lo que no hay necesidad de hacerlo.

También hay algunas ventajas adicionales, como la actualización más fácil del complemento y la carga a pedido para un mejor rendimiento. También puede copiar fácilmente su vimrc a otra computadora, ejecutar :PlugInstally tener todos sus complementos.

Tenga en cuenta que hay más administradores de complementos; Yo uso vim-plug. Consulte también: ¿Cuál es la diferencia entre los administradores de paquetes vim?


1
Una de las ventajas más importantes que tiene vim-plug sobre otros es la instalación / actualización paralela de complementos
r3bo0t

"esas secuencias de comandos se reflejan en GitHub, por lo que no hay necesidad de hacerlo". Lamentablemente, el raspador dejó de funcionar hace mucho tiempo. github.com/vim-scraper/vim-scraper/issues/…
Bluu

@Bluu Sí, me puse en contacto con el responsable de mantenimiento del año pasado; hay algunos bits técnicos que necesitan actualizarse, y nadie realmente se adelanta para hacer dicha actualización: - / Sin embargo, todavía es algo útil, ya que muchos scripts no se actualizan con tanta frecuencia (especialmente aquellos que no están en GitHub).
Martin Tournoij

25

Patógeno

Pathogen es un administrador de ruta de tiempo de ejecución, que carga complementos dentro de Vim. Hace que la instalación del complemento sea simple; Así es como funciona:

nota: si está utilizando Windows, reemplácelo ~/.vimcon $HOME\vimfiles.

  1. Copiar pathogen.vima ~/.vim/autoload/pathogen.vim.

  2. Cree el ~/.vim/bundledirectorio, si aún no existe.

  3. Agregue la siguiente línea al comienzo de su .vimrc:

    execute pathogen#infect()
    
  4. Ya terminaste! Cuando desee agregar un complemento, simplemente copie el directorio completo del complemento ~/.vim/bundleo git cloneallí. Por ejemplo:

    cd ~/.vim/bundle
    git clone https://github.com/tpope/vim-surround
    
  5. * Advertencia: si su complemento viene en forma de .vimarchivo, no funcionará con Pathogen. Cópielo en su ~/.vim/pluginlugar (puede que tenga que crear este directorio si no existe).


55
Nota: el patógeno no es un administrador de complementos.
romainl

o git submodule add(en lugar de git clone) si su configuración vim ya es parte de su propio proyecto git.
Martin York

@romainl, ¿qué es entonces?
RodrikTheReader

3
Es un administrador de runtimepath. Como en él maneja la runtimepathopción y eso es todo. No se trata de actualizar, agregar, recuperar ni eliminar complementos.
romainl

1
También vea el excelente Gist de @romainl sobre el uso de patógenos .
icc97

23

Vim 8+ / Neovim

La versión 8 introduce un nuevo mecanismo de paquetes que reemplaza en gran medida la necesidad de administradores de complementos existentes (patógenos, vim-plug, vundle, etc.) al momento de la redacción (2017).

De la documentación :

Un paquete Vim es un directorio que contiene uno o más complementos

Un directorio de paquete contiene dos subdirectorios:

  • start/ - contiene complementos que se cargarán automáticamente
  • opt/ - contiene complementos que se cargan a pedido con :packadd

Puede parecer un poco complicado, pero en la práctica todo lo que tiene que hacer es agregar su complemento aquí :

                 ↓ package name
~/ .vim / pack / bundle / start / some-plugin
          ↑ packages dir          ↑ plugin dir

En Windows : use en ~\vimfiles\pack\lugar de~/.vim/pack/

Por convención, hemos utilizado el nombre del paquete "paquete" como el directorio que contendrá todos nuestros complementos. Puede usar cualquier nombre que desee e incluso puede poner sus complementos en directorios de paquetes separados si realmente lo desea.

Ejemplo: instalación de sensible.vim

mkdir -p ~/.vim/pack/bundle/start
cd ~/.vim/pack/bundle/start
git clone https://github.com/tpope/vim-sensible.git

En Windows : use en ~\vimfiles\pack\lugar de~/.vim/pack/

La próxima vez que inicie Vim, el complemento se cargará automáticamente.


3
Si uno .vimestá bajo control de versión, podría ser mejor instalar complementos con submódulos de git; ver shapeshed.com/vim-packages/#adding-a-package .
Arch Stanton

Si hubiera una respuesta basada en el tiempo, esta sería la respuesta aceptada actual a partir de hoy.
Amin NAIRI

12

¡No olvidemos el gran y poderoso Vundle !

Vundle es un administrador de complementos completo, con funcionalidad para:

  • Buscando complementos (usando :PluginSearch)
  • Instalación de complementos (usando :PluginInstall)
  • Actualización de complementos (usando :PluginUpdate)
  • Administrar la ruta de carga del complemento en .vimrc (simplemente comente las entradas del complemento que no desea cargar)
  • Eliminar complementos que ya no deseas (usar :PluginClean)

Como puede ver, se parece mucho al administrador vim-plug mencionado por Carpetsmoker. No sé cuál vino primero, pero sus API se parecen mucho a mí, al igual que el proceso de configuración .


Lo bueno de Vundle es similar a vim-plug, puedes almacenar todos tus complementos en tu .vimrc, así que cuando instales en un nuevo servidor, todo lo que necesitas es una instalación de Vundle + tu .vimrcpara instalar todo. Además, puede comentar sus complementos y 'limpiarlos', pero podrá volver a comentarlos en meses o años después, cuando olvidó sus nombres.
icc97

Además, me gusta Vundle porque es relativamente amigable para principiantes. Proporciona prácticamente una sola forma de hacer las cosas y funciona de manera similar a Sublime Text.
icc97

1

Lo más probable es que su complemento sea un único archivo .vim.

Si este es el caso, busqué la ayuda y experimenté y descubrí lo siguiente. Desde vim (modo de comando), escriba:

:set runtimepath

Esto le mostrará una serie de directorios. Algunos de estos directorios tendrán un pluginsubdirectorio. Al colocar cualquier archivo .vim en uno de estos pluginsubdirectorios, se cargará automáticamente cuando inicie vim desde cualquier lugar.

Para mí, en Ubuntu Linux, descubrí que /usr/share/vim/vim74/pluginfuncionaba bien, para instalar para todos los usuarios. Es posible que necesite permiso de root para copiar un archivo aquí (prefijo your cpo mvcommand with sudo).


3
En mi humilde opinión, esta no es la mejor práctica. Tenga en cuenta que tiene vim74, lo que significa que es específica de la versión, por lo que la actualización a Vim 8.0 perderá ese complemento. Una forma más segura de actualización sería usar /etc/vim/para eso (crearlo si no está presente y agregar esa ruta runtimepathsi no está disponible /etc/vimrc)
grodzik

3
Para agregar al comentario @grodzik: Most likely, your plugin will be a single .vim fileNo estoy de acuerdo. La gran mayoría de los complementos viene con un .txtarchivo que contiene el documento y necesita generar las etiquetas para obtener un documento funcional. También muchos complementos vienen con un autoloaddirectorio. Creo que usar un administrador de complementos es una mejor solución que administrar su runtimepath manualmente
statox

-1 /usr/share/vim/vimXXes el tiempo de ejecución de stock y no es el lugar para la configuración / complementos del sitio. En cambio, las configuraciones / complementos del sitio deben colocarse donde sea $VIMque apunten los puntos en ese sistema (ver :h vimfiles). Por lo general, este es /usr/share/vimel caso de Ubuntu y contiene enlaces simbólicos /etc/vim. En general, /usr/local/es el lugar de facto para la configuración del sitio fuera del administrador de paquetes . Tenga en cuenta que Neovim utiliza $XDG_(CONFIG|DATA)_DIRSy sitedirectorios, proporcionando mejores valores predeterminados para las configuraciones del sitio.
ZeroKnight

1

Vire aprovecha el último formato de paquete para instalar complementos y es compatible con Vim y Neovim. No necesitas saber a dónde va todo. Solo proporcione un vimrc y Vire se encargará del resto.