Continuamos con las entradas destinadas a Raspberry pi y Linux. En esta ocasión vamos a profundizar en el editor de textos Nano, un viejo amigo inseparable que nos va a acompañar de en la mayoría de distribuciones de Linux, y con el que debemos familiarizarnos.
GNU Nano es un editor de texto sencillo controlado en su mayor parte por teclado. Resulta especialmente adecuado para editar ficheros (por ejemplo, de configuración) desde la consola de comandos o desde SSH, donde no siempre tenemos disponible un ratón.
La primera versión de Nano data de 1999. Fue desarrollado para parecerse a Pico, el editor de un popular cliente de correo electrónico de la época llamado Pine. En primer momento Nano se denominaba TIP (TIP Isn’t Pico). Posteriormente cambio su nombre a Nano, jugando con los prefijos del SI, ya que “nano es 1000 veces mayor que pico”.
En febrero de 2001 Nano pasó a ser parte oficial del Proyecto GNU formando parte del software libre. Es el editor de textos integrado de forma mayoritaria en las distribuciones de Linux, como Debian o Ubuntu, lo que incluye Raspbian para Raspberry Pi.
Aunque no es la única alternativa disponible (algunas con muchos seguidores como VIM) es casi inevitable que en algún momento uséis Nano para editar rápidamente un texto. Afortunadamente es un programa sencillo y muy fácil de usar.
Sin embargo, peso a su sencillez Nano tiene más opciones y herramientas de las que parece en un primer momento. Por tanto, y ya que es una herramienta que vamos a acabar usando con frecuencia, conviene que profundicemos un poco en su uso y le perdamos el miedo.
Aspecto visual
La interface de Nano tiene 4 secciones principales:
La barra superior muestra información sobre el archivo editado
La sección principal donde editamos el texto
En la parte inferior tenemos la barra de estado, que muestra mensajes al usuario
Las dos últimas líneas muestran atajos de teclado usados en el editor
Ayudas en Nano
Al igual que con muchas herramientas en Linux Nano ofrece distintas ayudas para facilitarnos su uso. La primera forma de darnos ayuda es antes de lanzar Nano, ejecutando el siguiente comando:
nano -?
Nos mostrará un listado muy largo con opciones que podemos emplear para lanzar Nano y modificar su comportamiento.
Por otro lado, dentro de Nano podemos usar la combinación de teclas:
Ctrl+G #Mostrar ayudas
Y nos mostrará otro listado muy largo con opciones, comandos y atajos que podemos emplear en Nano.
Tened en cuenta que no consiste en saberse todas las opciones de memoria, si no en saber que existen y saber encontrarlas rápidamente si lo necesitamos.
Si ya sois usuarios muy avanzados (¡enhorabuena!), podéis ocultar la barra de atajos de con la combinación de teclas:
Alt+X #Activar/desactivar barra atajos
Podéis volver a activar la barra con la misma combinación de teclas.
Usar comandos en Nano
En Nano los comandos se ejecutan empleando combinaciones de teclado. Tenemos combinaciones con la tecla Ctrl (indicado como ^) y con la tecla Alt (indicado como como M-, Meta).
En esta entrada veremos los atajos de teclado convertidos a Ctrl+ y Alt+. Aunque a los puristas de Linux les de un infarto al no ver ^ y M-, la vista de los demás lo agradece :)
Como alternativa a las teclas Ctrl y Alt en Nano se puede emplear la tecla Esc. En este caso, no hace falta que pulsemos la combinación de teclas de forma simultánea.
- Pulsar Esc y después ‘tecla’ es equivalente a pulsar Ctrl+‘tecla’
- Pulsar dos veces Esc y después ‘tecla’ es equivalente a pulsar Alt+‘tecla’
Crear o abrir un archivo
Para abrir o crear un archivo, en una consola de comando escribimos:
nano [nombre-archivo]
Por ejemplo, si escribimos:
nano hola.txt
Abriremos un nuevo fichero llamado ‘hola.txt’ si no existe. Si ya existe, lo abriremos para su edición.
Recordar que podemos usar la tecla Tab para completar rutas de ficheros en la consola de comandos.
Al abrir un archivo podemos usar el modificador -B para abrir en modo Backup. nano -B Al guardar el archivo, la versión anterior se guardará con “nombre-fichero~”. Por ejemplo, si usamos:
nano -B hola.txt
Al guardar el fichero se guardará automáticamente una copia como “hola.txt~”.
Si hemos abierto un fichero sin la opción de Backup, es posible activarla/desactivarla en cualquier momento pulsando las teclas
Alt+B
Cerrar Nano y guardar archivos
Para guardar un archivo (con el mismo u otro nombre) usamos el atajo de teclado:
Ctrl + O #Guardar/Guardar como
Nano nos pide el nombre de archivo que queremos, y pulsamos Enter para aceptar, o Ctrl+C para cancelar. Mirar la barra de atajos para más combinaciones.
Por su parte, para cerrar Nano pulsamos:
Ctrl + X #Cerrar Nano
Que cierra Nano y vuelve a la consola de comandos. No obstante, si hay cambios sin guardar en el fichero antes de cerrarlo nos preguntará si queremos guardar cambios, con opciones similares a ‘Ctrl+O’.
Navegación
Podemos desplazarnos por la ventana de edición de texto con las opciones habituales, teclas de cursor, teclas Av. Pag y Re. Pag, y teclas Inicio y Fin.
Pero también hay muchos atajos de teclado propios de Nano para navegar. Aunque en la mayoría de casos usaremos las teclas anteriores, no podríamos hacer una entrada sin al menos citarlos.
Ctrl+A #Ir al principio de la línea actual
Ctrl+E #Ir al final de la línea actual
Ctrl+Y #Ir a la pantalla anterior
Ctrl+V #Ir a la siguiente pantalla
Alt+\ #Ir a la primera línea del fichero
Alt+/ #Ir a la última línea del fichero
Alt+( #Ir al principio del párrafo; después, al del párrafo anterior
Alt+) #Ir al final del párrafo; después, al del párrafo siguiente
Alt+] #Ir a la llave correspondiente
Seleccionar, cortar/copiar y pegar
Por supuesto, en Nano es posible cortar, copiar y pegar texto, aunque el funcionamiento y atajos de teclado son algo distintos a los que estamos acostumbrados en otros programas.
En primer lugar, tenemos que seleccionar texto. Para esto nos posicionamos en el primer carácter que queramos seleccionar y pulsamos:
Alt+A #Iniciar seleccion
Ahora, nos desplazamos hasta la posición final, y Nano ira resaltando el texto seleccionado. El texto seleccionado no incluye el carácter bajo el cursor.
Para ‘cortar’/‘copiar’ y ‘pegar’, pulsamos una de los siguientes atajos de teclado:
Ctrl+k #Cortar
Ctrl+u #Pegar
Alt+6 #Copiar
En Nano es más frecuente usar ‘cortar’ y que ‘copiar’. De hecho, ya veis que el atajo de ‘copiar’ es distinto al de ‘cortar’ o ‘pegar’. Por eso en muchas veces se emplea ‘cortar’ seguido de ‘pegar’, en lugar de ‘copiar’.
Otra curiosidad es que, si usamos ‘cortar’ sin tener una selección, cortaremos toda la línea. Es más, si usamos varias veces ‘cortar’ sin desplazar el cursor añadiremos las líneas al portapapeles. Al pegarlas, añadiremos todas las líneas del portapapeles.
Usar el ratón para seleccionar
Seleccionar texto únicamente con el teclado es bastante engorroso. Cuando no tengamos disponible un ratón no quedará otra, pero en muchas ocasiones si vamos a tener un ratón disponible.
Un truco menos conocido es que es posible activar/desactivar el soporte de ratón pulsando:
Alt+M #Activar/desactivar soporte ratón
Ahora podemos pulsar doble click encima del primer carácter que queramos seleccionar, y otra vez click en el último. Ahora que tenemos seleccionado el texto, podemos cortar o copiar el texto como hemos visto en el apartado anterior.
Combinar ficheros
Una función muy útil al trabajar con ficheros de texto de tipo configuración, logs, etc, es combinar dos o más ficheros. Así, es posible insertar el contenido de un fichero dentro del fichero actual pulsando:
Ctrl+R
Nos preguntará el nombre del fichero que queremos insertar, y tras pulsar Enter, Nano insertará el fichero en la posición actual del cursor.
Otra forma de combinar archivos es al guardar el fichero (pulsando Ctrl+X o Ctrl+O) emplear los atajos:
Alt+A #Añadir fichero antes del actual
Alt+P #Añadir fichero después del actual
Buscar y reemplazar
Por supuesto, en Nano es posible buscar un texto dentro del fichero actual. Para eso, pulsamos:
Ctrl + W #Buscar texto
Y escribimos el texto a buscar.
Si queremos repetir la búsqueda por todas las ocurrencias del fichero pulsamos repetidamente:
Alt + W #Buscar siguiente ocurrencia
Si en su lugar queremos buscar y reemplazar un texto por otro usamos:
Alt+R #Buscar y reemplazar
Escribimos el texto que queremos buscar y luego el que queremos reemplazar. En el menú inferior nos aparecen las opciones para pasar sustituir las ocurrencias:
Alt+S #reemplazar ocurrencia actual y pasar a la siguiente
Alt+N #ignorar ocurrencia actual y pasar a la siguiente
Alt+A #reemplazar todas las ocurrencias
Trabajar con filas y columnas
En ocasiones es útil ver trabajar con las líneas y caracteres de un documento de texto. Si queremos ver la fila y columna de la posición actual del cursor usamos la combinación:
Alt+C #Ver la fila y columna del cursor
En la barra de estado nos aparece los datos sobre la posición del curso, tamaño de la selección, y tamaño del documento.
Si queremos desplazar el cursor a una columna y fila determinadas, pulsamos:
Alt+G #Mover el cursor a una fila y columna
Y escribimos la línea y columna a la que queremos ir.
También es posible abrir un fichero directamente en una línea y columna con el siguiente comando:
nano +linea,columna [nombre-fichero]
Por otro lado, podemos contar el número de líneas, palabras y caracteres del fichero pulsando
Alt+D #Mostrar el contador de lineas, palabras y caracteres
Trabajar con líneas indentadas
Nano dispone de herramientas para facilitarnos el trabajo con ficheros de texto indentados (es decir, los que las líneas tienen sangrías). Esto es especialmente útil en ficheros de código, Json, etc.
La primera herramienta es la tecla de inicio inteligente, que podemos activar o desactivar pulsando:
Alt+H #Activar/desactivar tecla inicio inteligente
Cuando está activado, al pulsar la tecla ‘Inicio’ el cursor se desplazará a la posición de origen de la línea superior, en lugar de al inicio de la línea.
Por otro lado, otra herramienta muy útil es el auto indentado, que podemos activar o desactivar pulsando:
Alt+I #Activar/desactivar indentado automatico
Cuando el auto indentado está activado, pulsar la tecla ‘Enter’ posicionará el cursor en la misma posición que la línea anterior, en lugar de al principio de la línea.
Trabajar con líneas largas
En ocasiones nos va a tocar trabajar con líneas que son más anchas que la pantalla. En estos casos, Nano también incorpora funciones para ayudarnos en el trabajo. En primer lugar, si una línea “se sale” de la pantalla por izquierda o derecha, Nano lo indica con el símbolo ’$’ al final o principio de la línea, respectivamente.
Por otro lado, tenemos dos opciones para realizar el tratamiento de líneas largas. En primer caso el ajuste de línea “soft”, que se activa con la combinación de teclas:
Alt+$ #Activar/desactivar ajuste linea soft
En este caso, Nano muestra las líneas largas en varias líneas, separando cuando no caben en la pantalla. Esteaseparación (wrapping) es únicamente visual, pero la línea sigue siendo igual de larga. Por tanto, podemos activarlo o desactivarlo en cualquier momento.
Por contra, también tenemos el ajuste de línea “hard”, que se activa con el atajo:
Alt+L #Activar/desactivar ajuste linea hard
Que igualmente divide las líneas largas en varias líneas que caben en la pantalla, pero en este caso el cambio se realiza realmente en el texto, insertando saltos de línea. En este caso el cambio no puede deshacerse porque la línea realmente ha sido cambiada.
Poner Nano en el fondo
Como ya vimos en la entrada sobre uso avanzado de Bash es posible poner un proceso en background, y Nano no es una excepción. Para poner Nano en el fondo pulsamos:
Ctrl+Z #Poner proceso en el fondo
Podemos seguir usando la consola de comandos y cuando queramos recuperar Nano ejecutamos el comando:
fg #Reactivar proceso en el fondo
Si queremos impedir que Nano pueda ponerse en background (porque no hacéis más que darle a la tecla sin querer, por ejemplo) podemos habilitarlo o deshabilitarlo pulsando:
Alt+Z #Activar/desactivar suspension
Por supuesto hay muchas más funciones, pero como decíamos no es cuestión de sabérselas todas. Lo importante es saber que están ahí, y que echando un vistazo a la barra inferior o a las ayudas podemos recordarlas.
En el uso de Linux usaréis frecuentemente Nano, así como la consola de comandos y SSH. ¡Así que ya sabéis! A cogerle el gusto a esta sencilla pero potente herramienta disponible en sistemas Linux como Raspbian en Raspberry Pi.