Guía práctica de los editores de texto nano y vi en Linux

Actualizado el 22 de agosto, 2016. Por BlueHosting.

Uno de los retos que enfrentan los nuevos usuarios de Linux que acceden por consola, es la edición de textos a través de las opciones disponibles en la mayoría de estos entornos. Operaciones tan importantes como la escritura de scripts, desarrollo de código fuente en distintos lenguajes de programación o edición de archivos de configuración del sistema (como iptables para el firewall, o el archivo sudoers) requieren un conocimiento sólido de la edición de texto en Linux. La mayor parte del tiempo accedemos a nuestros sistemas vía SSH, por lo tanto, al estar bajo una interfaz de línea de comandos, los editores de texto no ofrecen una forma intuitiva o una interfaz gráfica de trabajo. En esta guía presentamos información práctica para aprender a trabajar con los editores de texto más populares (o nativos) en la mayoría de los sistemas operativos basados en Linux: vi y nano; además se hace mención a otros editores como emacs y vim.

Cómo utilizar vi

Vi o Visual, es uno de los editores de texto más comunes en los sistemas Linux, está presente en la mayoría de estos entornos y puede ser bastante complejo de usar al principio. Una vez que se adecúe a los modos y comandos, puede que vi le parezca una opción completa y muy eficiente.

Modos de trabajo en vi

Para editar un archivo usando el editor vi simplemente debe ingresar el comando:

vi nombredelarchivo.txt

Una vez ejecutado el comando, se abrirá el archivo correspondiente en texto plano, sin formato alguno. Si este no existe, se creará un archivo en blanco, el cual se guardará en el directorio desde donde se ejecutó el comando, siempre y cuando lo guarde al terminar la edición. vi utiliza tres modos para operar y editar archivos: modo comando, modo de inserción y modo última línea. ¡No se apresure a escribir texto inmediatamente, ya que puede cometer errores!

  • Modo comando: cuando ejecuta vi, el programa se inicia por defecto en este modo.
    • Cada tecla ejecuta una acción que permite la edición de los archivos.
    • Los comandos de este modo están compuestos de una o dos (2) teclas.
    • Para regresar al modo comando presione ESC.
  • Modo de inserción - o edición: el modo de inserción, permite escribir y borrar texto dentro del archivo.
    • Para entrar al modo de inserción, presione la tecla i mientras está en el modo de comandos.
    • Podrá identificar que efectivamente está en el modo de inserción si observa el siguiente aviso en la parte inferior de su shell: -- INSERT --.
    • ¡Recuerde! Para salir del modo de inserción, presione ESC.
  • Modo última línea: este modo permite ejecutar comandos externos, tales como guardar el archivo, salir y otras operaciones más complejas.
    • Para entrar en el modo última línea pulse la tecla :.
    • Podrá ver estos comandos en la última línea de la pantalla.
    • A diferencia del primer modo, la ejecución de estos comandos es realizada al presionar Enter.
    • Para salir de este modo, presione Esc.

Lista de comandos más usados en vi

A continuación se presenta una lista de los comandos más utilizados en vi, recuerde que los comandos precedidos por : pertenecen al modo última línea y debe presionar Enter para ejecutarlos. Tenga en cuenta que vi distingue entre mayúsculas y minúsculas.

Comando Función
vi ejemplo Ya lo hemos visto: este comando inicia el editor vi para el archivo ejemplo
vi -r ejemplo Inicia vi en modo de recuperación para editar el archivo ejemplo después de un fallo del sistema
:r ejemplo2 Leer en el archivo ejemplo2 e insertar ese texto desde la posición actual de nuestro primer archivo
ESC Salir del modo actual y regresar al modo de comando
:w Guardar el archivo
:q Salir del editor
:wq o :x En consecuencia, guardar y salir. Note que puede combinar teclas para obtener otras funciones en el modo última línea
:q! Salir de vi sin guardar cambios
:w ejemplo Guardar cambios en el archivo ejemplo
:w ejemplo2 Sobrescribir el archivo ejemplo2
i Insertar texto a la izquierda del cursor
a Insertar texto a la derecha del cursor
A Insertar texto al final de la línea actual
r Remplazar el carácter en la línea actual
x Borrar carácter en la posición actual
dw Borrar la palabra en la posición actual
dd Borrar la línea actual
u Deshacer la última operación
yy Copiar la línea actual y ponerla en búfer
p Pegar el contenido del búfer en la posición actual
:n o :nG Mover el cursor hasta la línea n, muy útil en archivos de gran extensión. Por ejemplo :5100 movería el cursor a la línea 5100 dentro del archivo
/patrón Buscar patrón en el archivo, desde la posición actual hacia adelante
?patrón Buscar patrón en el archivo, desde la posición actual hacia atrás

Movimiento del cursor

Comando Función
Teclas de flecha: , , y Para mover el cursor a la izquierda, derecha, arriba o abajo
j Mover el cursor a la siguiente línea
k Mover a la línea anterior
h o tecla retroceso (Back space) Moverse un carácter a la izquierda
l o tecla espacio (Space) Moverse un carácter a la derecha
0 Ir al inicio de la línea
$ Ir al final de la línea
w Ir al principio de la siguiente palabra
:0 Mueve el cursor al inicio del archivo
:n Se mueve a la línea n
:$ Se mueve a la última línea del archivo

Opciones avanzadas

Arriba se presentan los modos y comandos básicos para comenzar con la edición de archivos usando vi, sin embargo, este programa provee muchas características avanzadas que no son abordadas con detalle en este tutorial. Por ejemplo: la combinación :! ejecuta un comando de Linux dentro del editor vi. Por ejemplo, si ejecuta :! wc % se mostrará el número de palabras en su archivo, la sesión de vi pasa a segundo plano y se muestra el resultado en su shell. Para continuar trabajando en su archivo, debe presionar Enter.

Cómo utilizar nano

Nano es un editor de texto más básico, y cuyo uso es mucho más sencillo. Es el editor de texto nativo en sistemas como Ubuntu y es una alternativa a editores como emacs o vi ya que opera más fácilmente y provee mayor interactividad.

Instalar nano

Nano está presente por defecto en la mayoría de los sistemas basados en Linux, pero si este no es su caso, puede instalarlo ingresando:

apt-get install nano

Para sistemas Debian/Ubuntu.

yum install nano

Para usuarios que utilizan sistemas Fedora/CentOS.

Uso general de nano

Para editar un archivo usando el editor nano use:

nano ArchivoTest.txt

Al ejecutar el comando, se abrirá una interfaz ligeramente más completa que la de vi:

Si el archivo al cual hizo referencia no existe, se creará un archivo en blanco, que quedará guardado independiente de lo que haga en el editor, a diferencia de vi. En la parte inferior del texto encontrará, a modo de referencia, los comandos básicos de nano. El símbolo ^ representa la tecla CTRL; así, si presionamos CTRL + X estaríamos saliendo de nano.

Podrá notar que puede mover el cursor libremente e insertar texto sin necesidad de usar distintos modos, ¡muy conveniente!

Lista de comandos básicos

Muchos de los comandos son interactivos, por lo tanto, al presionar los "atajos" en el teclado, nano puede solicitar información adicional.

Comando Función
CTRL + G Mostrar la pantalla de ayuda
CTRL + O Guardar cambios
CTRL + X Salir de nano. Al ejecutar este "atajo", nano le preguntará si desea o no guardar los cambios en su archivo, otra opción muy útil. Presione Y para guardar los cambios (Yes), N para descartarlos (No), o CTRL + C para cancelar la operación
CTRL + R Inserta el contenido de otro archivo desde la posición actual, es un comando interactivo, por lo que se le solicitará colocar nombre y/o ruta del archivo cuyo contenido desea copiar
CTRL + W Busca la cadena de caracteres y sitúa el cursor en la coincidencia
CTRL + \ Buscar y remplazar
CTRL + / Ir a la línea, columna
CTRL + Y Ir a la página siguiente
CTRL + V Ir a la página anterior
CTRL + K Cortar el texto de la línea actual
CTRL + U Pegar el texto desde la ubicación actual del cursor

Opciones avanzadas

Para abrir un archivo en nano desde una línea y columna específica use:

nano +LÍNEA,COLUMNA ejemplo.txt

Para abrir un archivo en modo de solo lectura:

nano -v ejemplo.txt

Para abrir un archivo de configuración del sistema utilice la opción -w, esto evita que las líneas muy largas se ajusten al tamaño del shell, lo que produce problemas de visualización y eventualmente, errores en la edición:

nano -w ejemplo.txt

Otros editores de texto

Emacs

A diferencia de vi, emacs es un editor en pantalla, por lo que puede desplazarse y escribir texto con más libertad. Sin embargo, el uso de los comandos puede ser incluso más confuso que en vi. Para editar un archivo usando emacs ejecute:

emacs ejemplo.txt

A continuación una lista muy resumida de los comandos más básicos de emacs.

Comando Función
CTRL+x y luego CTRL+c Salir de emacs (se le preguntará si desea guardar el archivo)
CTRL + x y luego CTRL + s Guardar sin salir
CTRL+h y luego t Ver tutorial de emacs
ESC+d Borrar la palabra donde está el cursor actualmente
CTRL+k Borrar la línea actual
CTRL+s Buscar una palabra o cadena de caracteres (hacia adelante)
CTRL+x y luego u Deshacer el último cambio

Vim

Vim es la versión mejorada de vi, por lo tanto, todos los comandos que utilice en vi serán válidos para vim. Algunas de las características adicionales que incluye vim:

  • Soporte para lenguajes de programación como C/C++, Python, Perl o Shell. Esto permite, por ejemplo, resaltar secciones de código adecuadamente para mayor legibilidad;
  • Incluye opción multinivel para deshacer/rehacer;
  • Permite la edición de archivos comprimidos (.gzip, .zip, .tar, etc).

Existen otras opciones que puede utilizar, pero que no se abordan dentro de este tutorial. Nuestra recomendación es explorar con cada uno de los editores y seleccionar el que sea más cómo para usted. Si usted es principiante en Linux, le recomendamos crear un archivo de prueba desde su directorio /home y experimentar con los comandos antes de hacer cambios más importantes. Recuerde que para editar archivos de configuración de sistema y afines, deberá poseer privilegios root.

Recursos adicionales

El recurso más completo estará a su alcance ejecutando los comandos de ayuda o manuales de cada editor. También puede consultar los siguientes recursos en busca de información adicional con respecto a este tema. Aunque este material es provisto esperando que sea útil, tenga en cuenta que no podemos certificar la actualidad o precisión de los contenidos externos.

¿QUÉ DESEAS SABER?

Intentaremos leer tu mente...