Cómo convertir VIM en un IDE: una guía de personalización

Si, como yo, es un fanático del editor de texto VIM liviano y confiable y quiere apegarse a él en lugar de pasar a los entornos de desarrollo integrado más nuevos y elegantes como Pycharm, ha venido al lugar correcto. Los editores de texto como Vim y Emacs son muy extensibles y, en este tutorial, veremos algunas formas de usar esa extensibilidad para hacer que Vim se parezca un poco más a un IDE sin perder su atractivo ligero.

Tutorial de Vim: todo lo que necesita para comenzar con VIM

Tabla de contenido

¿Qué esperar de su IDE de Vim?

Obviamente, no podemos implementar todas las características de un IDE extenso como Pycharm en Vim. En este tutorial, veremos la implementación de funciones básicas que mejorarán su experiencia de codificación. Esto incluye cosas como resaltado de sintaxis, autocompletar, integración de git, etc.

requisitos previos

Para muchas de las características mencionadas aquí, instalaremos complementos a través deenchufe vinoyHerido. Así que asegúrese de haber instalado y configurado vim-plug y Vundle y sepa cómo usarlo. Si necesita ayuda para configurarlos, consulte los artículos de vim-plug y vundle.

1. Soporte de sintaxis y sangría

Lo primero que necesita en cualquier editor de texto o IDE es el resaltado de sintaxis para cada idioma. Afortunadamente, Vim viene con resaltado de sintaxis incorporado de forma predeterminada.

Para habilitar el resaltado de sintaxis en vim, vaya a /etc/vim/vimrc o /etc/vimrc y descomente las siguientes líneas. Al descomentar, simplemente me refiero a eliminar el # (hash) que podría estar presente antes de estas líneas. Si ya están comentados, entonces está listo para comenzar.

if has("syntax")
  syntax on
endif

Ahora puedes habilitar o deshabilitar la sintaxis desde el editor de texto cuando lo desees.

Para habilitar la sintaxis, vaya al modo normal y escriba

:syntax on 

y para deshabilitar el resaltado de sintaxis puede usar

:syntax off

Como alternativa, puede instalarvim-políglotapara soporte de sintaxis y sangría. Como se mencionó anteriormente, usaré vim-plug para instalar este complemento. Para instalar vim-plug, ejecute el siguiente comando.

curl -fLo ~/.vim/autoload/plug.vim --create-dirs 
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

Después de haber instalado vim-plug, abra ~/.vimrc (hágalo si aún no está presente) e ingrese las siguientes líneas.

set nocompatible

call plug#begin()

Plug 'sheerun/vim-polyglot'

call plug#end()

Después de esto, use el siguiente comando en vim para generar la configuración.

:source %

y este comando para instalar todos los complementos mencionados en el vimrc.

:PlugInstall

Para obtener instrucciones más detalladas sobre cómo trabajar con vim-plug, consulte este artículo.

2. Numeración de líneas

Al igual que el resaltado de sintaxis, también puede habilitar directamente la numeración de líneas desde los comandos vim. Para habilitar los números de línea, vaya al modo normal y luego use el comando

:set number

Este modo se puede desactivar usando el comando

: set nonumber

3. Integración del administrador de archivos

La integración del administrador de archivos es la primera característica para la que usaremos un complemento externo. El complemento que instalaré para esto esNerdArbol.

Para instalar NerdTree, ingrese las siguientes líneas en vimrc.

call plug#begin()
 
Plug 'https://github.com/preservim/nerdtree', { 'on': 'NERDTreeToggle' }
 
call plug#end()

Luego, instale el complemento como lo hicimos en la primera sección.

Ahora puede activar y desactivar NerdTree usando:NERDTreeToggle

Árbol empollónÁrbol empollón

4. Autocompletado de parejas

El autocompletado de pares se refiere a la inserción o eliminación de corchetes, paréntesis y comillas en pares. Esto se puede lograr a través de laEmparejamientos automáticoscomplemento que se puede instalar a través de vim-plug.

Simplemente agregue el repositorio en~/.vimrcde la siguiente manera y pulsa:PlugInstallcomo hemos hecho antes.

call plug#begin()
 
Plug 'LunarWatcher/auto-pairs'
 
call plug#end()

Puede activar y desactivar los emparejamientos automáticos configurando una clave para ello en vimrc de la siguiente manera.

let g:AutoPairsShortcutToggle="<C-P>"

La tecla alternar en este caso esCtrl + P

5. Autocompletado de palabras clave

El autocompletado de palabras clave es probablemente la función más buscada en cualquier IDE. Si bien es difícil obtener un autocompletado de palabras clave muy sofisticado sin configurar un servidor de idioma, aún podemos usar el autocompletado de palabras clave básico usandosimple-completo.

Agregue el complemento a vimrc de la siguiente manera e instálelo usando:PlugInstall

call plug#begin()
 
Plug 'maxboisvert/vim-simple-complete'
 
call plug#end()

simple-autocompletar intenta completar la palabra clave después de que haya escrito dos letras y use la pestaña para completar automáticamente la palabra.

Complemento Vim Simple Autocompletar

6. Integración Git

Git es una parte esencial de la vida de cualquier programador o desarrollador y dejar que vim use git no es la forma más eficiente de usar git. Por esta razón, el legendario artista de plugins de vim, el mismo Tim Pope, creóvim-fugitivo. Vim-fugitive hace posible el uso de comandos git desde la propia terminal vim.

Para instalar vim-fugitive, no utilizaremos ningún administrador de complementos externo, sino el sistema de administración de complementos predeterminado que utiliza Vim. Esto requiere crear una carpeta ~/.vim y colocar el repositorio de complementos en ella. Para hacer esto, ejecute los siguientes comandos.

mkdir -p ~/.vim/pack/tpope/start
cd ~/.vim/pack/tpope/start
git clone https://tpope.io/vim/fugitive.git
vim -u NONE -c "helptags fugitive/doc" -c q

Ahora, la próxima vez que abra un archivo de texto en vim, que está vinculado a git, ejecute:Git o:Gen el vim. Esto abrirá una ventana de resumen con archivos sucios y confirmaciones no insertadas y no extraídas. Casi todos los comandos usados tradicionalmente en git se pueden usar aquí. Aquí hay algunos comunes.

  • :Git add <filename>: Agregar archivos al área de preparación
  • :g?: Lista de mapas para numerosas operaciones, incluidas la diferenciación, la puesta en escena, la confirmación, el cambio de base y el ocultamiento
  • :Git commit: Confirmar el contenido preparado.
  • :Git push : Empuje el contenido preconfigurado al repositorio remoto.

Comandos adicionales:

  • :GMove :hace ungit mven el archivo actual
  • :GDelete: Hace ungit rmen el archivo actual y simultáneamente elimina el búfer
  • :GBrowse: Abre el repositorio remoto en el navegador web.
  • :Gread: variante degit checkout -- filenameque opera en el búfer en lugar del archivo en sí
  • :Ggrep: Funciona comogit grep
fugitivofugitivo

Otros complementos que hacen que Vim sea más eficiente

1. Movimiento VIM

Movimiento Vimo Mover le permite mover líneas y selecciones hacia arriba y hacia abajo de manera visual. Se puede instalar a través de Vundle. Esta demostración tomada de la página de Github es lo suficientemente impresionante como para convencer a cualquiera de que la instale.

demostración de movimiento vertical de vim

2. Fswitch y Protodef (C++)

Si trabajas mucho con C++ estás de suerte.Interruptor de ventiladoryProtodefle permite cambiar entre archivos de implementación y archivos de encabezado, así como extraer prototipos de funciones de los archivos de encabezado. Ambos se pueden instalar a través de vim plug.

call plug#begin()
Plug 'derekwyatt/vim-fswitch'
Plug 'derekwyatt/vim-protodef'
call plug#end()

Para obtener una guía de uso, consulte las páginas de Vimaquíyaquí.

Conclusión

En este artículo, discutimos algunas formas en las que puede hacer que la configuración de vim de barebones sea más como un IDE. Esto incluía jugar con las configuraciones e instalar un montón de complementos. Este tipo de configuración es perfecta para las personas a las que les gusta trabajar con un software mínimo y rápido. Para encontrar complementos vim más interesantes para instalar, puede visitarImpresionantey navega por las categorías. Diviértete y sigue explorando.