5

Vim / Neovim el edior de texto diseñado para terminal

<h1>Vi / Vim / Neovim</h1>

Vi, Vim y Neovim son editores de texto basados en modos enfocados en terminal, similar al editor nano (para mi nano no es muy amigable que se diga). Empecemos por el contexto, ¿Qué es cada uno de estos editores de texto?, en terminos simples la cronología fue algo así

  • Nace Vi => la comunidad decide que se le puede mejorar entonces
  • Nace Vim => la comunidad mejora características de Vim entonces
  • Nace NeoVim => Es la versión (hasta ahora) definitiva de Vi
Screenshot from 2021-04-23 11-27-53.png

Alguna vez te debiste topar con una pantalla similar a esta, entraste en pánico porque no sabías que sucedía porque escribías y no pasaba nada, después de presionar varias teclas como un demente empezó a escribir y no sabés porque, entonces trataste de salir de ese editor de texto igual que lo harías en el nano pero no funcionaba, no tenías ni idea de como se hace eso así que recurriste a la vieja confiable alt +F4 y regresaste a tu vida normal haciendo de cuenta que eso no sucedió y fue un caos!. Lo sé, te entiendo yo también estuve ahí. Hoy te explicaré como funciona Vi/ Vim/ Neovim.

<h1>VIM/NEOVIM ES UNO DE LOS EDITORES DE TEXTO MÁS USADO POR PROGRAMADORES, Y MUCHOS LO PREFIEREN. No tan popular como VScode, pero tiene su encanto</h1> <h1>Modos</h1>

Como te expliqué antes, esto es un editor de texto basado en modos, ¿Pero que significa basado en modos?. En el mundo de Vi/ Vim/ Neovim si ingresas al editor de texto por defecto se abre en el modo normal, solo puedes observar y hacer ciertas modificaciones pero no puedes escribir en el archivo, para insertar texto tienes que decirle al editor que vas a editar el archivo. Lo olvidaba, todo lo haces por teclado! no es genial?! casi casi le dices adiós al mouse al momento de escribir código.

<h1>Si, hay gente que programa en Vim! yo tambien los creía locos, ahora soy #team_Neovim ❤️</h1>

Dirigete a tu terminal, acompañame para que veas como funciona.

Screenshot from 2021-04-23 11-43-20.png
vi fichero.sh
vi fichero.js
vi fichero.txt

O la extensión que tu quieras. Le das enter y Felicidades!! acabas de crear tu primer archivo y lo vas a editar en vi. vi viene instalado por defecto en todos los sistemas operativos así que no necesitas instalar nada previamente. Yo tengo instalado neovim así que usaré neovim, funciona exactamente igual.

  • –INSERT– Para insertar texto lo que debemos hacer es aplastar la tecla (i) o la tecla (a)
Screenshot from 2021-04-23 11-50-47.png

Si te fijas en la parte de abajo me dice –INSERT– estamos en el modo de edición.

Ahora si lo que yo quisiera es que se guarden los cambios, tenemos que salir del modo –INSERT– y regresar al modo normal. Para salir es muy sencillo, precionamos la tecla ESC y para guardar presionamos :w. Le damos a ENTER y listo, nos dice que el archivo se guardó

Screenshot from 2021-04-23 12-01-05.png

Para comprobarlo, vamos a salir de VIM y verificamos desde terminal que hay contenido en el archivo.
Salir.- Para salir de vim, en el modo normal escribimos :q, de damos a ENTER y vemos el contenido desde terminal

cat fichero.txt
Screenshot from 2021-04-23 12-04-31.png
<h1>Y listo nuestro archivo se guradó!</h1>

Y me dirás “bueno esto lo podía hacer desde el nano, bloc de notas o algún otro editor de texto” cierto?.

Hagamos algo más interesante te parece? Sigueme

cd 
sudo add-apt-repository ppa:neovim-ppa/stable
sudo apt-get update
sudo apt-get install neovim
ls -la > nuevoarchivo.txt
nvim nuevoarchivo.txt

Ahora debes tener neovim instalado y acabas de ingresar en el fichero que creamos listando los archivos con detalles y archivos ocultos del $HOME porque regresamos al home cuando dimos ENTER en cd.
Vamos a tener contenido diferente pero en escencia es lo mismo, un archivo con un listado.
Activemos la numeración de líneas en el neovim.
En el modo normal escribe esto :set number. Mi archivo tiene 66 líneas y no salen todas en una sola captura.
Screenshot from 2021-04-23 12-29-14.png

Para moverte sobre el archivo, siempre nos movemos en el modo NORMAL al que ingresamos por defecto. Tienes 2 alternativas, te puedes mover con las flechas del teclado o te mueves con las teclas que viene el editor de texto

  • DERECHA: tecla l ele
  • IZQUIERDA: tecla h
  • ARRIBA: tecla k
  • ABAJO: tecla j

También puedes ingresar al modo de edición con la tecla (o) pero inserta en la siguiente línea

Screenshot from 2021-04-23 12-42-22.png
mi cursor está en la línea 3, si aplasto (o)

Screenshot from 2021-04-23 12-43-15.png
<h1>Copiar, cortar, pegar, ctrl Z y ctrl Y</h1>
  • Presiona 2 veces (y) para copiar todo el contenido de la línea donde se encuentra el cursor.
  • Presiona 2 veces (d) para cortar todo el contenido de la línea donde se encuentra el cursor
  • Presiona ( p ) para pegar lo que acabas de copiar o cortar, y lo pega en la siguiente línea
Screenshot from 2021-04-23 12-53-39.png
  • crtl z: si quieres hacer este comando te darás cuenta que no funciona, eso es porque el editor de texto ya tiene una tecla para hacer eso, es la (u) hace referencia a (undo)
  • ctrl y: talvez te ha pasado que le das mucho a (ctrl z) y haces un (ctrl y) para rehacer algo que querías que se mantenga, en vim se hace con (ctrl shift r) hace referencia a (redo)
<h1>Otros movimientos</h1>
  • Presiona 2 veces (g) esto hará que el cursor se mueva a la línea 1 del texto
  • w: si presionas esta tecla hará que el cursor se mueva al inicio de la siguiente palabra
    Screenshot from 2021-04-23 13-04-58.png
  • b: con esta tecla te mueve al inicio de la palaba enterior
    Screenshot from 2021-04-23 13-05-55.png
<h1>Buscar una palabra en el texto.</h1>
  • Presiona la telca / esto te permite escribir la palabra que quieras buscar en tu archivo, por ejemplo
Screenshot from 2021-04-23 13-19-28.png

le das enter y el cursor se queda donde está la palabra que buscabas, pero si se repite muchas veces una palabra y quieres moverte entre las búsquedas? Ejemplo:

Screenshot from 2021-04-23 13-20-52.png

si presionas la tecla (n) te moverá el cursor entre las diferentes búsquedas de arriba hacia abajo

Ahora tienes subrayadas las búsquedas en la pantalla, para quitar el subrayado debes escribir :nohlsearch

Screenshot from 2021-04-23 13-24-13.png
<h1>Reemplazar caracteres</h1>
  • ( r ): mueve el cursor al lugar donde quieres reemplazar un caractér y presiona ® y luego presiona el caracter por el que lo quieres reemplazar.
Screenshot from 2021-04-23 13-28-15.png
Screenshot from 2021-04-23 13-30-23.png
Screenshot from 2021-04-23 13-29-18.png

Reemplazar una palabra completa

  • (c i w): mueve el cursor a la plabra que quieres cambiar y presiona (c i w) y mágicamente se borrará la plabra donde se encontraba el cursor y el editor reconoce que escribirás una nueva, así que, te ingresa al modo de edición.
Screenshot from 2021-04-23 13-33-01.png
<h1>SCROLL</h1>

Quieres que tu cursor se mueva veloz hacia ariba, abajo, izquierda o derecha? No te preocupes, para eso usamos lo siguiente

  • Flecha de arriba (UP) presionada y acto seguido presiona shift
  • Flecha de abajo (DOWN) presionada y acto seguido presiona shift
  • Flecha de izquierda (LEFT) presionada y acto seguido presiona shift
  • Flecha de derecha (RIGHT) presionada y acto seguido presiona shift

Hasta ahora todo lo que has visto es en el modo normal, pero vi/vim/neovim tienen un tercer modo que es el modo --VISUAL–, este te permite seleccionar fragmentos de texto para copiar, cortar y/o mover.

Entramos al modo visual con la tecla (v)

Screenshot from 2021-04-23 13-43-02.png

Una vez adentro si movemos el cursor ahora nos selecciona el texto, si queremos seleccionar otra cosa, salimos del modo visual (ESC), nos movemos hasta la línea que querramos y entramos de nuevo al modo visual para seleccionar el texto que buscamos.
Hacemos uso de las teclas que ya aprendimos antes para copiar y cortar, pero ojo ahora solo precionamos (y) o (d) una sola vez.
Yo me voy a copiar este texto, lo selecciono y presiono una sola vez (y)

Screenshot from 2021-04-23 13-46-45.png

Automática mente nos saca del modo visual despues de copiar o cortar y haciendo uso de §, nos lo pega seguido de la posición donde se encuentra el cursor.
Screenshot from 2021-04-23 13-49-00.png

Si lo que queremos es que se pegue en la siguiente linea entonces hacemos esto

  1. Seleccionamos el texto en el modo visual
  2. Copiamos o cortamos el texto
  3. Presionamos (o) para crear una nueva línea
  4. ESC y presionamos ( p )
Screenshot from 2021-04-23 13-57-37.png
<h1>Utilidades con MAYÚSCULAS activadas</h1>
  • A: Ingresas al modo de edición pero al final de la línea donde se encontraba el cursor
  • i mayúscula (I): Igual que A mayúscula solo que ingresas al modo de edición con el cursor al inicio de la línea.
  • H: Te lleva el cursor a la primera línea que se encuentre en la parte superior del texto, ojo no es la primera línea de texto del archivo, por ejemplo, en tu texto se ve de la línea 15 a la 35 y tienes el cusor en la línea 23, la línea que se encuentra en la parte superior es la 15, entonces regresarás a la línea 15, es la primera visible en la parte superior del texto.
  • L: Esto te llevará el cursor a la última linea visible del texto actual, tomando el ejemplo anterior, estas en la línea 15 y si aplastas la L irás a la línea 35
  • O: Inserta una nueva línea para editar desplanzando todo el contenido una linea hacia abajo, (cuando la pruebes me entenderás mejor)
  • P: Pega el contenido que cortaste o copiaste en la línea anterior, donde se encuentra el cursor.
  • G: Te lleva a la última línea del texto, si estas en la línea 20 y tu archivo tiene 200 líneas, esto te llevará a la línea 200
  • N: te moverá el cursor entre las diferentes búsquedas de abajo hacia arriba.
<h1>Hay mas cosas que se me quedan, creo que sería material suficiente para hacer un curso de Vim/Neovim pero creo que es lo más escencial para poder moverte y adaptarte a neovim, si quieres programar en neovim puedes personalizarlo tanto hasta el punto de convertirlo en un editor de texto con explorador de archivos, tener colores, auto completado y autoformat del código, todo lo que tu quieras, te lo muestro!.</h1>
neovim
Colores

Si quieres puedes instalarte mi configuración de neovim para que lo utilices, yo la uso en mi día a día programando. La instalación está paso a paso en el Readme.

<h1>Mi configuración</h1>

Si te gustó este tutorial regalame un ❤️ y regalame una estrellita en mi repositorio ❤️ te lo agradecería mucho y nunca pares de aprender!

<h1>Si tienes dudas, te responderé! lo más pronto que pueda</h1>
Escribe tu comentario
+ 2