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
ovi
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.
- Juego educativo oficial de
vim
: Vim adventures, que explica de forma muy interactiva, cómo usar este editor. - Manual de emacs.
- Artículo de Linux que explica el uso de comandos externos en vi.
- Documentación oficial de nano en línea