Practicas de Sistemas Telemáticos Guión 3 1. MIDNIGHT COMMANDER Midnight commander es un gestor de ficheros con una interfaz amigable. Proporciona una interfaz agradable y fácil de usar permitiéndonos manipular archivos fácilmente sin perder la funcionalidad de la línea de comandos. GNU Midnight Commander se puede ejecutar en sistemas operativos POSIX (Unix-like) como GNU/Linux, FreeBSD, Mac OS X, Solaris, HP-UX y otros. También puede ser compilado en Cygwin bajo Windows. Gracias a que MC es un programa en modo texto, funciona en cualquier terminal. GNU Midnight Commander utiliza GNU Autoconf con lo cual la instalación es muy fácil 1.1 Instalación de MC MC puede ser obtenido desde una gran cantidad de páginas web, aunque el sitio oficial de descarga es el siguiente: ftp://ftp.gnome.org/pub/GNOME/stable/sources/mc/ ahora deberemos abrir una ventana en el navegador web Mozilla y acceder a ese directorio ftp. Una vez dentro, veremos diversas carpetas con distintas versiones del programa, pinchamos en la versión estable más actual. Al abrir el cuadro de descarga, creamos un directorio denominado "mc" donde almacenaremos el fichero con la extensión "tar.gz" ( mc-4.6.1-pre1.tar.gz ). 1 Otra opción para descargarse los archivos para instalar el MC es teclear en un buscador de Internet las palabras: midnight commander download y podremos ver una gran cantidad de sitios desde los cuales podremos descargar el archivo. La extensión "gz" nos indica que el fichero ha sido comprimido utilizando el comando "gzip" (ver man gzip). Para descomprimirlo teclearemos: gunzip mc-4.6.1-pre1.tar.gz Esta instrucción descomprime el fichero especificado, borrando el original, de modo que tras esta instrucción, haciendo un listado del contenido del directorio veremos el fichero "mc-4.6.1-pre1.tar". Los ficheros con extensión "tar" son creados mediante la instrucción "tar" (ver man tar), esta instrucción sirve para archivar varios directorios con sus respectivos ficheros en un único fichero. Para "desarchivar" nuestro fichero deberemos teclear: tar -x -f mc-4.6.1-pre1.tar Tras ejecutar esta instrucción, dentro del directorio en el que estábamos, veremos que se han creado varios ficheros y directorios. Entre estos ficheros y directorios. Estos dos pasos se pueden realizar directamente en uno modificando las opciones que se le pasan a gzip como argumentos: tar -zxf fichero al añadir la opción "z" estamos indicando que el fichero se debe descomprimir antes de ser "desarchivado". Hay otras extensiones típicas para los ficheros que contienen aplicaciones, estas extensiones son "tgz" y también hay que destacar que se está imponiendo otro estándar de compresión denominado bzip2 y que el proceso para su descompresión es idéntico a este, solo que en vez de utilizar la instrucción gzip, deberemos utilizar la instrucción bzip2. Una vez que tenemos el archivo descomprimido y desarchivado, deberemos acceder al directorio que se ha creado. Al listar el contenido de ese directorio podremos ver una gran cantidad de 2 archivos y directorios, entre estos directorios, es común encontrarse con directorios denominados "src" o source" que contienen el código fuente, "lib" para las librerías, etc. En nuestro caso podemos apreciar que además de los directorios comentados antes, tenemos unos ficheros denominados INSTALL y INSTALL.FAST, en estos ficheros de texto se describe el proceso que se ha de seguir para la instalación de la aplicación. En nuestro caso, primero deberemos ejecutar el script "configure" y tras ejecutar este comando, ejecutaremos "make install" 1.2 Iniciando MC Para ejecutar Midnight Commander tan solo deberemos ejecutar el siguiente comando: $ mc Al ejecutarlo, veremos como nos aparecen dos paneles coloreados listando el directorio en el que nos encontrábamos cuando lo ejecutamos. Estos paneles son configurables para que nos muestren una información u otra. Se puede especificar el directorio inicial para ambas ventanas ingresándolos como argumentos del MC p ej.: “mc /etc /root”. Mediante las teclas de función podemos realizar varias operaciones y acceder al menú, a continuación se muestran las funciones que desempeñan estas teclas: ? F1: Menú de ayuda ? F2: Menú de usuario ? F3: Visor de archivos interno ? F4: Editor interno ? F5: Copiar (pueden ser varios elementos seleccionados) ? F6: Renombrar ? F7: Crea un directorio ? F8: Borra elementos seleccionados ? F9: Activar menú desplegable ? F10: Salir del Midnight Commander Podemos simular las teclas de función F1,F2,…F12 mediante la pulsación de la tecla Esc-x donde x es el número de la tecla de función. 3 Para movernos de un panel a otro activando uno y desactivando el otro, utilizaremos la tecla “Tab”. En los paneles podremos seleccionar/deseleccionar elementos mediante la tecla “Ins” y podremos utilizar la tecla “Supr.” Para borrarlos (igual que F8). 1.3 La línea de comandos Además de los dos paneles, podemos observar que en la última línea tenemos la línea de comandos. Gracias a esta línea de comandos podremos ejecutar cualquier orden como si no estuviéramos ejecutando MC. Por ejemplo, si tecleamos “cd ..”, el comando se ejecutará y podremos ver como hemos cambiado de directorio únicamente en el panel que estaba activo. Cuando estemos escribiendo sobre la línea de comandos podemos utilizar las siguientes combinaciones de teclas: ? Ctrl-Enter o Alt-Enter copiará el nombre de un archivo en la línea de comandos. ? Alt-Tab cumple el mismo rol que la tecla TAB en el shell. ? Ctrl - o : nos muestra la shell completa, pulsando de nuevo, volvemos a MC. 1.4 Dinámica de funcionamiento Nosotros podremos movernos por los sistemas de ficheros locales, en otros dispositivos e incluso en otros sistemas remotos de modo transparente sin haber ninguna diferencia en el tratamiento de estos. Para ello, contamos con dos paneles en los que se nos muestra el listado del contenido del directorio actual. Cada panel es independiente del otro, de modo que en un panel podemos estar en un directorio y en el otro panel estar en otro directorio, pudiendo cambiar de uno a otro mediante la tecla “Tab”. Sabremos si estamos en un panel si nos aparece una franja coloreada sobre el nombre de algún fichero. Esta franja representa el archivo que está seleccionado. Cada panel puede representar información variada teniendo en cuenta que uno de ellos siempre deberá visualizar el listado de un directorio. Dentro de la información que puede ser mostrada en un panel tenemos: ? Listado (por defecto) = lista el contenido de un directorio ? Vista rápida = Muestra el contenido de el archivo sobre el que estamos posicionados en el otro panel ? Muestra información completa del sistema de ficheros y del fichero sobre el que estamos posicionados ? Árbol = muestra todo el árbol de directorios del sistema de ficheros 4 Podemos hacer selecciones de varios archivos dentro de un panel mediante la tecla “Ins” y podremos hacer estas selecciones utilizando los metacaracteres que ya conocemos presionando primero la tecla ‘+’. Para hacer deselecciones múltiples, deberemos pulsar ‘-‘. Una vez que tenemos un archivo o directorio seleccionado, podemos realizar operaciones sobre él. 1.5 Visor y Editor Si colocamos el indicador sobre un fichero, podremos visualizar el contenido de este con la tecla F3 y pulsamos Esc dos veces o F10 para salir. El visor se puede arrancar directamente de la siguiente manera desde la línea de comandos: $ mc -v nombre_archivo Si deseamos editarlo, podemos pulsar F4 y nos aparecerá el contenido del documento de modo que puede ser modificado. Dentro del editor tenemos un menú independiente con las diversas opciones del editor de texto. Las teclas rápidas para este editor son las siguientes: ? F1: Ayuda ? F2: Guardar el archivo actual ? F3: Empieza/Termina selección del texto ? F4: Buscar y Reemplazar ? F5: Copiar área seleccionada ? F6: Mover área seleccionada ? F7: Buscar ? F8: Borrar área seleccionada ? F9: Menú interno del editor ? F10: Salir del editor El editor interno sigue un esquema de cortar-y-pegar muy interesante, con F3 se marca el comienzo de una selección, un segundo F3 marca el fin de la misma y resalta el área elegida. A continuación se puede mover el cursor. Si pulsa F6 el área seleccionada se ubicará donde está el cursor. Presionando F5 el área se copiará e insertará en dicha posición. También podemos hacer selecciones verticales (ver Menú). El editor se puede iniciar directamente con un archivo: 5 $ mc -e nombre_archivo_a_editar $ mcedit nombre_archivo_a_editar El editor interno se puede reemplazar por cualquier editor externo de su preferencia. Del mismo modo, podemos hacer este editor el editor por defecto de nuestra shell modificando las variables correspondientes. 1.6 Inicio automático de programas Pulsando Enter sobre un archivo determinado y en función del tipo de archivo se realizará una operación establecida por defecto, p. ej.: Si el archivo es un ejecutable -> Ejecuta el programa Si es de tipo man, archivo html -> Se abre en el visor Si es de tipo tar, gz, archivo rpm-> Se lista el contenido Como casi todo en UNIX, esto puede ser personalizado editando el archivo ~/.mc/bindings. 1.7 Sistema de archivos virtuales FTP Se puede usar el MC para acceder a archivos que se encuentran en Internet vía FTP. Para ello deberemos acceder al menú principal (F9), y en la opción Izquierdo o Derecho (para seleccionar en que panel queremos hacer la conexión) elegiremos “conexión por ftp”. Tras seleccionar esa opción nos aparecerá un cuadro de dialogo en el cual podremos teclear el nombre del equipo remoto. Tras conectar con él, nos aparecerá el contenido de este como si se tratara de un directorio más de nuestro sistema de archivos. 2. EDITORES DE TEXTO Dentro de la gran variedad de aplicaciones y editores de texto existentes para UNIX, a lo largo de la historia, ha habido 2 editores que han destacado por ser usados por la gran mayoría de usuarios, estos dos editores son vi y emacs. vi (en inglés se pronuncia vi ay) fue el primero incluido en el sistema operativo UNIX. El segundo vino más tarde pero es muy extraño que un sistema no lo tenga instalado. Cualquier distribución de Linux incluye estos dos editores. 6 2.1 vi vi (visual editor) fue desarrollado originalmente para BSD UNIX por Hill Joy de la Universidad de California, Berkeley. vi es un editor de muy reducido tamaño y que una vez dominado, nos podrá permitir hacer ediciones de forma muy rápida debido a su gran cantidad de comandos disponibles. Precisamente ahí radica la gran desventaja de sus detractores que afirman que, sin perder ninguna funcionalidad, se pueden realizar las mismas ediciones con emacs de una forma mucho más intuitiva. 2.1.1 Ejecución Para comenzar a utilizar vi simplemente debemos teclear: vi cuando se ejecute, aparecerá una pantalla con un fichero en blanco. Si deseamos editar un fichero que ya exista podemos hacer que se nos muestre al iniciar el programa escribiendo: vi nombre_fichero Una de las características de vi que lo hacen tan peculiar es la existencia de dos modos: modo de introducción de texto y modo de comandos. En el modo de introducción de texto o modo texto, podremos escribir texto en el buffer que luego será escrito en el fichero. En el modo comandos podremos realizar operaciones sobre el texto escrito así como con el fichero y el buffer. 2.2.2 Modo de introducción de texto Si estamos dentro del modo de comandos, deberemos introducir un comando para poder introducir el texto, los posibles comandos para introducir texto son: i –> El texto se insertará delante del cursor I -> El texto se insertará al principio de la línea en la que nos encontremos a -> El texto será introducido después del cursor A -> El texto se insertará al final de la línea actual. 7 o -> El texto se insertará después de la línea actual. O -> El texto se insertará antes de la línea actual. R -> El texto se reemplazará Tras introducir uno de estos comandos, cualquier texto que introduzcamos se verá en la pantalla. Para pasar a la línea siguiente, debemos utilizar la tecla Enter. Para borrar el carácter que hayamos introducido, podemos usar la tecla BkSpac. Hemos de tener en cuenta que en modo de introducción de texto, no podemos utilizar las flechas del teclado para mover el cursor, si pulsamos alguna de estas teclas veremos su correspondiente valor en el código ASCII. Para salir del modo de introducción de texto y volver a modo de comandos deberemos pulsar la tecla “Esc” . Si estamos en modo de comandos y pulsamos Esc no pasará nada y nos mantendremos en ese modo. 2.2.3 Modo de comandos Algunos comandos que vayamos a introducir requieren una serie de parámetros, para introducir estos comandos deberemos escribir primero “:” y a continuación la secuencia de comandos. Una vez escrito el comando, deberemos pulsar Enter para ejecutarlo. Movimiento del cursor A continuación se muestra una tabla con los posibles comandos para el movimiento del cursor: Acción Secuencia de teclas Subir una línea Tecla arriba o “k” Bajar una línea Tecla abajo o “j” Moverse a la derecha un carácter Tecla derecha o “l” Moverse a la izquierda un carácter Tecla izquierda o “h” Ir al principio de una línea ^ Ir al final de una línea $ Atrás una palabra “b” 8 Adelante una palabra “w” Bajar media pantalla Ctrl-D Bajar una pantalla entera Ctrl-F Subir media pantalla Ctrl-U Subir una pantalla entera Ctrl-B Ir a la línea num :num <Enter> Borrado del texto Acción Secuencia de teclas Borrar un carácter Posicionar el cursor sobre ese carácter y pulsar “x” Borrar una palabra Posicionar el cursor al principio de la palabra y escribir “dw” (delete Word) Borrar una línea Posicionar el cursor en esa línea y escribir “dd”. Si introducimos un número antes de dd, estaremos indicando el número de líneas que queremos borrar Borrar desde la posición actual hasta el Tecla “D” final de la línea Borrar bloques de líneas :rangod <Enter> donde rango son dos números separados por una coma Reemplazo de texto Acción Secuencia de teclas Reemplazar un carácter Posicionar el cursor sobre el carácter, pulsar “r” e introducir el nuevo carácter Reemplazar una palabra Posicionar el cursor al principio de la palabra, teclear “cw” escribir la nueva 9 palabra y pulsar Esc. Reemplazar una línea Posicionarse sobre la línea, teclear “cc”, escribir la línea y pulsar Esc. Copiar y pegar vi mantiene un buffer que puede almacenar un texto para ser copiado de una zona y pegado en otra zona del texto, para manejarlo debemos utilizar los siguientes comandos: Acción Secuencia de teclas Copiar al buffer (yank) :rangoy Insertar el buffer después de la línea “p” o “:pu<Enter>” actual (put) Insertar el buffer después de la línea :numpu<Enter> número num Búsqueda vi permite la búsqueda de una cadena de texto hacia delante y hacia atrás con respecto a la línea en la que nos encontramos actualmente: Acción Secuencia de teclas Buscar hacia delante la cadena cad /cad/ Buscar hacia atrás la cadena cad ?cad? Repetir la última búsqueda n Repetir la última búsqueda en sentido N opuesto 10 Búsqueda y Reemplazo Al igual que antes, podemos realizar búsquedas de cadenas de texto y además, una vez encontradas, pueden ser reemplazadas por la cadena que especifiquemos: Acción Secuencia de teclas Reemplaza la primera ocurrencia de cad :<rango>s/cad/ sust/<Enter> en cada línea con la cadena sust (el rango es opcional) Reemplaza cada ocurrencia de cad en :<rango>s/cad/ sust/g<Enter> cada línea con la cadena sust (el rango es opcional) Abrir y Guardar ficheros Para poder manipular los ficheros con los que deseemos trabajar, tenemos los siguientes comandos disponibles: Acción Secuencia de teclas Salvar el fichero actual como nomb_fich :w nomb_fich<Enter> Salvar el fichero actual con su mismo :w<Enter> nombre Salvar solo el rango de líneas :<rango>w nomb_fich<Enter> especificado en otro fichero Cargar el contenido de otro fichero en la :r nomb_fich <Enter> posición actual Editar otro archivo distinto al actual :e nomb_fich <Enter> Editar el siguiente fichero abierto :n <Enter> Comandos Varios A continuación se describen una miscelánea de comandos útiles: 11 Acción Secuencia de teclas Ejecutar comando en un subshell y volver :!<comando><Enter> a vi Ejecutar comando en un subshell e inserta :r !<comando> <Enter> el resultado de la ejecución en la posición actual del buffer Salir de vi (si el fichero ha sido salvado o :q <Enter> no ha sido modificado) Salir de vi (descartando modificaciones) :q! EMACS EMACS es un editor muy popular que puede ser encontrado en una gran cantidad de implementaciones de UNIX. Fue desarrollado por Richard Stallman y Guy Steele, en 1975 aunque ha sido modificado a lo largo del tiempo. Iniciando emacs Para ejecutar emacs con un fichero en blanco solamente hemos de escribir “emacs”, si queremos que al ejecutarlo se nos abra un fichero ya existente, se lo podemos dar como parámetro y así, al ejecutar emacs, se nos mostrará en la pantalla este archivo. Al ver la pantalla, podemos observar como en el final hay una línea con información. Esta línea es conocida como la línea de modo, la información contenida en ella es la siguiente (varía según la versión): ? Tres guiones juntos : el fichero no se ha modificado, cuando cambian a dos asteriscos y un guión, significa q el fichero ha sido modificado ? Nombre del fichero q estamos editando ? Modo de edición (solo veremos el modo de edición de texto) ? La posición relativa en el fichero y el porcentaje de fichero que se nos está mostrando 12 La Línea de modo Al final de la pantalla se nos muestra una línea que se corresponde con la línea de modo. Esta línea no pertenece a los datos con los que estemos trabajando sino que nos proporciona información diversa: ? El estado del buffer, modificado(**), sin modificar(--) , solo lectura (%%) ? El nombre del fichero que estamos editando ? El modo en el que nos encontramos, aparece entre paréntesis ? La cantidad del fichero que se nos muestra en pantalla: o All : Vemos todo el fichero. o Top : Vemos la parte de arriba o Bot : Vemos la parte de abajo o NN% : el porcentaje de fichero por encima de la primera línea de la ventana El Minibuffer La línea en blanco situada debajo de la línea de modo se denomina minibuffer. Este se utiliza para mostrar mensajes y para introducir algo que se requiere en un comando (p. ej. Al abrir un fichero, nos pide el nombre). El minibuffer también es conocido como el área de eco. La razón es que cada pulsación para un comando se verá reflejada en el minibuffer conforme la vayamos haciendo. Comandos de emacs Al contrario que vi, emacs no hace distinción entre el modo de comandos y el modo de introducción de texto. Para modificar e introducir el texto, lo podemos hacer directamente sin tener que ejecutar ningún comando. Para usar las distintos comandos que nos ofrece emacs deberemos utilizar secuencias de teclas que serán representadas así en este guión: Ctrl-h t indica que primero debemos pulsar ctrl y al mismo tiempo la tecla h y después, podemos soltarlas y pulsar la tecla “t” 13 Se utiliza una serie de prefijos que clasifican al comando que vamos a ejecutar: Ctrl-c : Son comandos que dependen del modo en el que nos encontremos. Ctrl-h : Comandos de ayuda Crtl-x : Comandos que manipulan ficheros, ventanas y buffers. Ayuda Si presionamos el prefijo Ctrl-h dos veces, obtendremos la lista de los posibles sub-comandos que podemos utilizar, de entre ellos destacamos: Ctrl-h a Igual que el comando apropos, tras ejecutarlo, introducimos una palabra y se listarán todos los comandos que contenga esa palabra clave. Ctrl-h k Tras pulsarlo, se nos pedirá que pulsamos una combinación de teclas, tras esto, se nos mostrará su función Ctrl-h i Muestra el archivo hipertexto de documentación Ctrl-h m Describe el modo en el que nos encontramos actualmente. Ctrl-h t Inicia el tutorial de emacs Comandos para evitar problemas Hasta que no seamos unos usuarios experimentados, nos podemos perder entre las numerosas opciones que nos ofrece emacs, para poder regresar al estado inicial y evitar realizar acciones que no debamos podemos utilizar las siguientes combinaciones de teclas: Ctrl- G Termina cualquier comando que se haya iniciado y vuelve al estado de esperar un comando Ctrl- X 1 Cierra todas las ventanas abiertas menos la del fichero principal. Esto es muy útil ya que bastantes comandos de emacs abren ventanas auxiliares para ejecutarlos. 14 Finalizando la ejecución Para salir de emacs, deberemos pulsar las teclas Ctrl- X Ctrl- C. Si nuestro fichero había sido modificado y no estaba salvado, se nos preguntará si queremos salvarlo o no. Ficheros, Buffers y Ventanas Emacs, cuando trabaja sobre un fichero, no lo hace directamente sobre él, sino que trabaja sobre una copia de él, un buffer es una copia activa de un fichero. Podemos tener varios buffers abiertos correspondientes a distintos ficheros. Una ventana es una vista de uno de los buffers que hay abiertos. Podemos tener varias ventanas abiertas sobre un mismo buffer. Comandos para la manipulación de ficheros Ctrl -x Ctrl -f Con este comando podemos cargar un fichero en un buffer. Cuando lo ejecutamos, nos pedirá un nombre de fichero, si ya teníamos ese fichero abierto en otro buffer, abrirá ese buffer en una ventana. En caso de que no estuviera, se crea un nuevo buffer con el nombre del fichero y es inicializado con una copia del fichero. Ctrl -x Ctrl -s Al ejecutar este comando, escribiremos el buffer de un fichero en ese fichero. Ctrl -x s Salva todos los buffers abiertos preguntando antes de salvarlos. Comandos para Manipular Buffers Ctrl -x b Tras ejecutar el comando, escribiremos el nombre del buffer del cual se nos mostrará su ventana correspondiente. Ctrl -x Ctrl -b Muestra una nueva ventana que lista todos los buffers actuales. Ctrl -x k Cierra un buffer, si había sido modificado, se nos preguntará si deseamos salvarlo. Ctrl -x Ctrl -q Hace que un buffer sea de solo lectura. 15 Comandos para manipular Ventanas Ctrl -v Desplaza el cursor una pantalla hacia delante, por defecto, se dejan las dos últimas líneas de la pantalla anterior. Alt-v Como el anterior, pero en dirección contraria. Ctrl -x o Cambia a otra ventana convirtiendo la nueva ventana en la ventana active, repitiendo este comando nos iremos moviendo por todas las ventanas abiertas. Ctrl -x 1 Cierra todas las ventanas menos la actual (lo hemos visto antes). Aunque se cierre una ventana, no significa el buffer se cierre con ella. Ctrl -x 0 Borra la ventana actual. Ctrl -x 2 Divide la ventana actual en dos ventanas situadas en vertical. Esto crea una nueva ventana pero no un nuevo buffer, gracias a esto podemos tener varias vistas de un mismo fichero. Ctrl -x 3 Igual que el anterior solo que la división se realiza horizontalmente. Moviéndonos por el texto Podemos mover el cursor en referencia a objetos, es decir, en función a una palabra, una letra o incluso una función de C. Se realiza un movimiento de principio a fin con respecto a estos objetos. Todos los comandos que veremos a continuación utilizan argumentos numéricos mediante los cuales podemos indicar el número de repeticiones de ese comando. Ctrl -f Mueve el cursor a la derecha del carácter. Ctrl -b Mueve el cursor a la izquierda del carácter. Alt-f Mueve el cursor a la derecha de la palabra. Alt-b Mueve el cursor a la izquierda de la palabra. Ctrl -n Mueve el cursor arriba una línea. Ctrl -p Mueve el cursor abajo una línea. Ctrl -a Mueve al principio de la línea. Ctrl -e Mueve al final de la línea. 16 Alt-{ Mueve al principio del párrafo actual. Alt-} Mueve al final del párrafo actual. Ctrl -x [ Mueve al principio de la página actual. Ctrl -x ] Mueve al final de la página actual. Alt-< Mueve al principio del buffer actual. Alt-> Mueve al final del buffer actual. Ctrl -Alt-a Mueve al principio de la función actual. Ctrl -Alt-e Mueve al final de la función actual. Borrado de elementos En emacs se hace una distinción entre borrar y “matar”, borrar significa quitar algo del buffer actual sin que se pueda recuperar. Matar significa quitar el texto del buffer actual pero se guarda en un “kill buffer” que nos permitirá recuperar ese texto matado para insertarlo en el mismo buffer o en otros. El “kill buffer” es un buffer fifo circular que puede almacenar unos 30 borrados (es configurable) y la cantidad de texto que se puede salvar en cada elemento del buffer es ilimitada. Ctrl -d Borra el carácter a la derecha del cursor. DEL Mata el carácter a la izquierda del cursor. Alt-d Mata la palabra a la derecha del cursor. Alt-DEL Mata la palabra a la izquierda del cursor. Ctrl -k Mata hasta el final frase Ctrl -u 0 Ctrl -k Mata hasta el principio de la frase Alt-k Mata hasta el final de la línea actual Ctrl -u -1 Alt-k Mata hasta el principio de la línea actual Podemos recuperar los elementos del kill buffer mediante la combinación de teclas Ctrl- y , mediante esta combinación obtendremos el primer elemento que fue insertado en el buffer (fifo), 17 para movernos por los elementos anteriores, una vez que hemos pulsado Ctrl-y, deberemos pulsar repetidamente Alt-y hasta que lleguemos al elemento deseado. Ctrl – Y Insertar el último elemento del “kill buffer” Esc y Recuperar el último borrado Esc Ctrl – W Añadir el último borrado Ctrl – X u Undo Búsqueda de elementos Podemos hacer búsquedas de elementos utilizando como punto de referencia el lugar donde se encuentre el cursor en ese momento. Podremos buscar una cadena en dirección al principio del texto o hacia el final. Para ello, usamos la combinación de teclas adecuada y vamos introduciendo los caracteres de la cadena que buscamos, conforme los vamos introduciendo se irá realizando la búsqueda incrementalmente, para parar la búsqueda podemos pulsar Ret o iniciar cualquier otro comando. Ctrl – S cad Buscar hacia delante la cadena cad Ctrl – R cad Buscar hacia atrás la cadena cad Ctrl – S Repetir la última búsqueda hacia adelante Ctrl – R Repetir la última búsqueda hacia atrás Ctrl -s Ret Ctrl -w p1 p2 p3 Ret Búsqueda multiplabra Reemplazo de elementos Para realizar la búsqueda con reemplazo tenemos un comando específico: Alt-% (Alt – Mayusc – 5). Cuando introducimos este comando, en el minibuffer, se nos preguntará por la cadena que queremos buscar y, tras pulsar enter, la cadena con la que queremos reemplazarla. Cuando hemos escrito esta segunda cadena, pulsamos enter y comenzará la búsqueda, cuando encuentre una ocurrencia podemos proceder de los siguientes modos: 18 Spc Reemplaza esta ocurrencia Del No reemplaza esta ocurrencia Enter o Esc Termina el comando . Reemplaza esta ocurrencia y termina el comando ! Reemplaza todas las ocurrencias sin preguntar Modos mayores y menores Mediante los modos, podremos configurar el modo en el que cada tipo de fichero es editado, dándole a cada uno, una serie de propiedades que serán más útiles a la hora de trabajar con un tipo de ficheros determinado. El modo se elige automáticamente basándose en la extensión del fichero aunque también podemos especificarlo explícitamente nosotros. Por ejemplo, para el modo de edición texto tenemos comandos para corregir la ortografía, para editar C se nos indenta automáticamente, etc. 19