Conociendo Vi – El mejor editor de texto para Linux

Introducción

En el último artículo creamos algunos archivos, pero estaban vacíos. Un poco aburrido, pero tenemos que empezar por algún lado. En este artículo veremos una herramienta para poner contenido en archivos y editar ese contenido también.

Vi es un editor de texto que muy probablemente es diferente a cualquier editor que hayas usado antes. Tomará un tiempo entenderlo, pero una vez que lo hagas, te darás cuenta de que en realidad es bastante poderoso. Es algo así como la escritura táctil, al principio aprender es incómodo y te preguntas por qué te estás molestando, pero una vez que te acostumbres, no querrás dejarlo.

Incluso si no usas Vi todo el tiempo, definitivamente encontrarás que los patrones de trabajo que desarrollas al aprender el editor se pueden transferir fácilmente a otros programas y con gran efecto.

Este post y los siguientes post en realidad están formando la base de los últimos post donde los juntaremos y comenzaremos a hacer algunas cosas realmente geniales.

Elegí estudiar Vi primero para que tu mente tenga un poco de tiempo para procesarlo y darle sentido en preparación para más adelante cuando lo necesitemos.

Vi es una herramienta muy poderosa. En esta sección, mi objetivo no es cubrir todo lo que Vi puede hacer, sino ponerlo en funcionamiento con lo básico. Al final del artículo, proporcionaré algunos enlaces a recursos donde puedes aprender más sobre Vi. Te recomiendo que analices algunos de ellos.

Un editor de línea de comandos

Vi es un editor de texto de línea de comandos. Como ya sabes, la línea de comandos es un entorno bastante diferente a tu GUI. Es una ventana única con entrada y salida de texto solamente.

Vi ha sido diseñado para funcionar dentro de estas limitaciones y muchos dirían que en realidad es bastante poderoso como resultado. Vi está pensado como un editor de texto sin formato (similar al Bloc de notas en Windows o Textedit en Mac) en lugar de un conjunto de procesamiento de textos como Word o Pages. Sin embargo, tiene mucha más potencia en comparación con Notepad o Textedit.

Como resultado, tienes que deshacerte del mouse. Todo en Vi se hace a través del teclado.

Hay dos modos en Vi. Modo de inserción (o entrada) y modo de edición. En el modo de entrada, puedes digitar o ingresar contenido en el archivo. En el modo de edición, puedes moverte por el archivo, realizar acciones como eliminar, copiar, buscar y reemplazar, guardar, etc.

Un error común es comenzar a ingresar comandos sin ver primero el modo de edición o comenzar a escribir la entrada sin primero ver el modo insertar. Si haces cualquiera de estos, generalmente es fácil de entender, así que no te preocupes demasiado.

Cuando ejecutamos vi, normalmente lo emitimos con un único argumento de línea de comandos que es el archivo que deseas editar.

vi <archivo>

Si olvidas especificar un archivo, entonces hay una manera de abrir un archivo dentro de vi, pero es más fácil salir de vi y volver a intentarlo. También recuerda que cuando especificamos el archivo puede ser con una ruta absoluta o relativa.

Editando archivos

Vamos a sumergirnos y comenzar. Va a ser difícil para mí demostrar mucho de esto, así que en su lugar enumeraré lo que quiero que escribas y tendrá que intentarlo y ver qué pasa.

En primer lugar, pasemos a tu directorio que creaste en la sección sobre manipulación de archivos. Vamos a crear algunos archivos y estos los mantendrás fuera del camino de tus cosas normales.

Ahora editaremos nuestro primer archivo.

Cuando ejecutas este comando, abre el archivo. Si el archivo no existe, lo creará para ti y luego lo abrirá. (no es necesario tocar los archivos antes de editarlos) Una vez que ingreses a Vi, se verá más o menos así (aunque dependiendo del sistema en el que te encuentres, puede verse ligeramente diferente).

Siempre inicia en modo de edición, así que lo primero que haremos es cambiar al modo de inserción presionando i. Puedes saber cuándo estás en modo de inserción, como lo indicará la esquina inferior izquierda.

Ahora escribe algunas líneas de texto y presiona Esc, que te llevará de vuelta al modo de edición.

Guardar y salir

Hay algunas maneras de hacerlo. Todos hacen esencialmente lo mismo, así que elige la forma que prefieras. Para todo esto, asegúrate de estar primero en modo de edición.

Truco

Si no estás seguro de si estás en modo de edición o no, puedes ver la esquina inferior izquierda. Mientras no diga INSERT, estás bien. Alternativamente, puedes presionar Esc para estar seguro. Si ya estás en modo de edición, presionar Esc no hace nada, por lo que no hará ningún daño.

  • ZZ (Nota: mayúsculas) – Guardar y salir.
  • : q! – descartar todos los cambios, desde el último guardado, y salir.
  • : w – guardar archivo, pero no salir.
  • : wq – nuevamente, guarda y debes salir.

La mayoría de los comandos dentro de vi se ejecutan tan pronto como presionas una secuencia de teclas. Cualquier comando que comience con dos puntos (:) requiere que presiones <enter> para completar el comando.

Guarda y sal del archivo que tienes abierto actualmente.

Otras formas de ver archivos

vi nos permite editar archivos. Si quisiéramos, también podríamos usarlo para ver archivos, pero hay otros dos comandos que son un poco más convenientes para ese propósito. El primero es cat, que en realidad significa concatenar. Su propósito principal es unir archivos, pero en su forma más básica es útil solo para ver archivos.

cat <archivo>

Si ejecutas el comando cat, dándole un solo argumento de línea de comandos que es el archivo que acabamos de crear, verás su contenido en la pantalla, seguido de la solicitud.

Truco

Si accidentalmente ejecutas cat sin darle un argumento de línea de comandos, notarás que el cursor se mueve a la siguiente línea y luego no sucede nada. Debido a que no especificamos un archivo, cat lee en su lugar de algo llamado STDIN (del cual aprenderemos en la sección ‘Pipes y redirección’ que por defecto es el teclado. Si escribes algo, presiona <enter> verás que cat refleja tu entrada en la pantalla. Para salir de aquí, puedes presionar <Ctrl> + c, que es la señal universal para Cancelar en Linux.

De hecho, siempre que tengas problemas, generalmente puedes presionar <Ctrl> + c para salir de problemas.

Este comando es bueno cuando tenemos un archivo pequeño para ver, pero si el archivo es grande, la mayor parte del contenido volará por la pantalla y solo veremos la última página de contenido. Para archivos más grandes hay un comando más adecuado que es less.

less <archivo>

less te permite moverte hacia arriba y hacia abajo dentro de un archivo con las teclas de dirección. Puedes avanzar una página completa con la barra espaciadora o retroceder una página presionando b. Cuando hayas terminado, puedes presionar q para salir.

Echa un vistazo al archivo que acaba de crear ahora con estos dos comandos.

Explorando un archivo en Vi

Ahora volvamos al archivo que acabamos de crear e ingresemos más contenido. En el modo de inserción, puedes usar las teclas de dirección para mover el cursor. Ingresa dos párrafos más de contenido y luego presiona Esc para volver al modo de edición.

A continuación, se muestran algunos de los muchos comandos que puedes ingresar para moverte por el archivo. Juega con ellos y observa cómo funcionan.

  • Teclas de dirección: mueven el cursor.
  • j, k, h, l – mueve el cursor hacia abajo, arriba, izquierda y derecha (similar a las teclas de dirección).
  • ^ (caret) – mueve el cursor al comienzo de la línea actual.
  • $ – mueve el cursor al final de la línea actual.
  • nG – moverse a la n ésima línea (por ejemplo, 5G te lleva a quinta línea).
  • G – moverse a la última línea.
  • w – ir al comienzo de la siguiente palabra.
  • nw – avanza n palabra (por ejemplo, 2w avanza dos palabras hacia adelante).
  • b – ir al comienzo de la palabra anterior.
  • nb – retroceder n palabra.
  • { – retroceder un párrafo.
  • } – avanzar un párrafo.

Truco

Si escribes :set nu en modo de edición dentro de vi, habilitarás los números de línea. Creo que activar los números de línea hace que trabajar con archivos sea mucho más fácil.

Eliminar contenido

Acabamos de ver que si queremos movernos en vi hay bastantes opciones disponibles para nosotros. Varias de ellas también nos permiten precederlos con un número para movernos tantas veces.

La eliminación funciona de manera similar al movimiento, de hecho, varios comandos de eliminación nos permiten incorporar un comando de movimiento para definir qué se va a eliminar.

A continuación, se presentan algunas de las muchas formas en que podemos eliminar contenido dentro de vi. Practica con ellas ahora. (también debes consultar la sección a continuación sobre deshacer para que puedas deshacer tus eliminaciones).

  • x: eliminar un solo caracter.
  • nx: elimina n caracteres (por ejemplo, 5x elimina cinco caracteres).
  • dd: elimina la línea actual.
  • dn – d seguido de un comando de movimiento. Eliminar a donde el comando de movimiento te habría llevado. (por ejemplo, d5w significa eliminar 5 palabras)

Deshacer

Deshacer cambios en vi es bastante fácil. Solo es necesario el carácter u.

  • u – Deshace la última acción (puedes seguir presionando u para continuar deshaciendo)
  • U (Nota: capital) : deshace todos los cambios en la línea actual

Llevándolo más allá

Ahora podemos insertar contenido en un archivo, moverlo, eliminar contenido y deshacerlo, luego guardar y salir. En este momento puedes hacer la edición básica en vi. Sin embargo, esto solo toca la superficie de lo que vi puede hacer.

No entraré en todos los detalles aquí (creo que ya te he lanzado lo suficiente), pero te daré algunas cosas que tal vez quieras analizar para ampliar tu experiencia en vi. Una búsqueda básica en tu motor de búsqueda de la siguiente manera: vi <insertar concepto aquí> te encontrará muchas páginas con información útil. También hay muchas hojas de trucos vi que enumeran todos los comandos disponibles para ti.

  • copiar y pegar
  • buscar y reemplazar
  • buffers
  • marcadores
  • rangos
  • ajustes

Diviértete y recuerda seguir adelante. vi será doloroso al principio, pero con la práctica pronto se convertirá en tu amigo.

Resumen

Lo que aprendimos

vi

Edita un archivo.

cat

Ver un archivo

less

Conveniente para ver archivos grandes.

Conceptos importantes

Sin mouse

vi es un editor de texto donde todo se hace en el teclado. Si puedes tocar-escribir, entonces esto es genial. Si no es así, tal vez deberías pensar en aprender.

Editar comandos

Hay muchos de ellos. La práctica es la clave para recordar los más utilizados y útiles.

Repasar

Practiquemos con algún contenido.

  • Comienza creando un archivo y agregando contenido.
  • Guarda el archivo y obsérvalo con cat y less
  • Regresa al archivo en vi e ingresa más contenido.
  • Desplázate por el contenido utilizando al menos 6 comandos de movimiento diferentes.
  • Practica con varios de los comandos de eliminación, especialmente los que incorporan un comando de movimiento. Recuerda que puede deshacer tus cambios para no tener que seguir agregando contenido nuevo.