La manera más fácil de mover el cursor es, sin duda alguna, mediante el ratón y mediante las teclas de flechas.
Pero como ya se dijo al hablar de los comandos de Emacs, conocer como movernos dentro de Emacs mediante el teclado puede representar una ganancia de tiempo
y un aumento de productividad considerables.
Vamos a estudiar los comandos de movimiento del cursor dividiéndolos en varios grupos:
- Comandos básicos
- Movimientos por palabras
- Movimientos por lineas
- Movimimentos por bloques de texto
- Movimientos de pantalla y página
Acabaremos este capítulo introduciendo los comandos denominados de modificación numérica
y los de insertar y adjuntar archivos.
4.1.Comandos básicos de movimiento del cursor
Los movimientos del cursor que vamos a considerar "básicos" son:
- Comando : C-f
- Comando "largo" : M-x forward-char <Enter>
- Mueve el cursor un espacio hacia adelante (derecha)
Cuando el cursor se encuentra en el último carácter de la linea, se moverá al primer carácter de la linea siguiente.
- Comando : C-b
- Comando "largo" : M-x backward-char <Enter>
- Mueve el cursor un espacio hacia atrás (izquierda).
Cuando el cursor se encuentre en el primer carácter de la linea, se movera al último carácter de la linea anterior.
- Comando : C-p
- Comando "largo" : M-x previous-line <Enter>
- Mueve el cursor a la linea anterior (arriba).
- Comando : C-n
- Comando "largo" : M-x next-line <Enter>
- Mueve el cursor a la linea siguiente (abajo).
Todos estos movimientos pueden realizarse, también, con las correspondientes teclas de flechas.
4.2.Comandos de movimiento por palabras
Tenemos dos comandos que mueven el cursor de palabra en palabra. :
- Comando : M-f
- Comando "largo" : M-x forward-word <Enter>
- Situa el cursor en espacio inmediatamente anterior a la palabra siguiente.
- Comando : M-b
- Comando "largo" : M-x backward-word <Enter>
- Situa el cursor sobre el primer carácter de la palabra anterior.
Ambos comandos pueden ejecutarse también mediante la combinación C-<Flecha_Derecha> y
C-<Flecha_Izquierda>, respectivamente.
4.3.Comandos de movimiento por lineas
Para movernos por lineas tenemos los siguientes comandos :
- Comando : C-a
- Comando "largo" : M-x beginning-of-line <Enter>
- Situa el cursor sobre el primer carácter de la linea en la que se encuentra.
- Comando : C-e
- Comando "largo" : M-x end-of-line <Enter>
- Situa el cursor inmediatamente después del último carácter de la linea en la que se encuentra.
4.4.Comandos de movimiento por bloques de texto.
Los siguientes comandos mueven el cursor entre bloques de texto: frases, párrafos, buffer, página :
- Comando : M-a
- Comando "largo" : M-x backward-sentence <Enter>
- Situa el cursor sobre el primer carácter de la frase en la que se encuentra.
Si el cursor estuviera sobre el primer carácter de la frase, se moveria al primer carácter de la frase anterior.
- Comando : M-e
- Comando "largo" : M-x forward-sentence <Enter>
- Situa el cursor inmediatamente después del último carácter de la frase en la que se encuentra.
Si el cursor estuviera sobre el último espacio de la frase, se moveria al último espacio de la frase siguiente.
- Comando : M-{
- Comando "largo" : M-x backward-paragraph <Enter>
- Mueve el cursor al párrafo anterior.
- Comando : M-}
- Comando "largo" : M-x forward-paragraph <Enter>
- Mueve el cursor al principio del siguiente párrafo.
- Comando : M->
- Opción de menú : Edit-->Go To --> GoTo End of Buffer
- Comando "largo" : M-x end-of-buffer <Enter>
- Mueve el cursor al final del buffer. Se corresponde con la tecla <Fin>
- Comando : M->
- Opción de menú : Edit-->Go To --> GoTo Beginning of Buffer
- Comando "largo" : M-x beginnig-of-buffer <Enter>
- Mueve el cursor al principio del buffer. Se corresponde con la tecla <Inicio>
4.5.Comandos de movimiento de pantalla y página.
Podemos mover ("pasar") pantallas y páginas con los siguientes comandos :
- Comando : C-v
- Comando "largo" : M-x scroll-up <Enter>
- Avanza una pantalla.Se corresponde con la tecla <AvPag.>
- Comando : M-v
- Comando "largo" : M-x scroll-down <Enter>
- Retrocede una pantalla.Se corresponde con la tecla <RePag>
- Comando : C-x ]
- Comando "largo" : M-x forward-page <Enter>
- Avanza una página, en el caso de tener un documento paginado.
- Comando : C-x {
- Comando "largo" : M-x backward-page <Enter>
- Avanza una página, en el caso de tener un documento paginado.
Si estos dos últimos comandos se aplicaran sobre un documento no paginado, nos llevarian, respectivamente, al final y
al principio del buffer
4.6.Otros comandos de movimiento útiles.
Los comandos que se presentan a continuación pueden ser de utilidad para movernos por el contenido del buffer que estemos editando:
- Comando : C-l
- Comando "largo" : M-x recenter <Enter>
- Situa la linea en la que se halla el cursor en el centro (vertical) de la pantalla. Este comando tambien "refresca" la pantalla.
- Opción de menú : Edit-->Go To --> GoTo Line...
- Comando "largo" : M-x goto-line <Enter>
- Lleva el cursor al inicio de una linea concreta del buffer. Su ejecución es como sigue:
-
- Se ejecuta el comando
- En el mini-buffer aparece el mensaje Goto Line:.
- Introducimos el número de la linea del buffer a la que queremos desplazarnos.
- Tras pulsar <Enter>. El cursor se desplaza a la linea especificada.
- Opción de menú : Edit-->Go To --> GoTo Buffer Position...
- Comando "largo" : M-x goto-char <Enter>
- Ir a un determinado caracter del buffer.
El proceso de ejecución de dicho comando es el mismo que con goto-line,
sustituyendo el número de linea por el número de caracter.
- Comando "largo" : M-x what-line <Enter>
- Nos indica el numero de la linea del buffer en la que se encuentra el cursor.
El proceso de ejecución de dicho comando es. Ejecutado el comando, en el mini-buffer aparece un mensaje
indicándonos el número de linea en el que se encuentra el cursor ( Line n ).
4.7.Modificadores numéricos o Comandos de repetición.
Muchos comandos aceptan los llamados modificadores numéricos o, tambien comandos de repetición, que hacen que la acción del
comando al que se aplican se el número de veces especificado en el comando de repetición. Dichos comandos son ( n es un número):
- Comando : M-n
- Comando "largo" : M-x digit-argument <Enter>
- La aplicación de este comando sigue el siguiente esquema :
- M-n comando_sobre_el_que_se_aplica
- Comando : C-u n
- Comando "largo" : M-x universal-argument <Enter>
- La aplicación de este comando sigue el siguiente esquema :
- C-u n comando_sobre_el_que_se_aplica
Veamos como funcionan:
Cualquiera de los dos modificadores numéricos, combinados con C-v o con M-v provoca que la pantalla "corra" en número de lineas indicado y no una pantalla completa: C-u 8 C-v; la pantalla "corre" 8 lineas.
Dichos comandos también operan con caracteres: C-u 8 * o M-8 * insertan 8 caracteres *
La diferencia entre los dos modificadores numéricos es que C-u
no necesita ningún argumento numérico para producir un efecto de repetición:
Sin argumento numérico repite 4 veces el comando que lo sigue. C-u C-u C-p haria que el comando C-p se repita 16 veces.
Otra diferencia está en que, sin argumento numérico, el comando C-u, en algunos casos, modifica la función
del comando al que se aplica. Esta carásteristica se irá viendo mas adelante.
4.8.Insertar y Adjuntar archivos.
Una forma de introducir texto en un archivo que estemos editando es mediante la inserción del contenido de otro archivo
La diferencia entre Insertar y Adjuntar está , básicamente, en la posición donde se "coloca" el archivo importado. Se dice que se adjunta cuando el contenido archivo que se importa se situa al final y a continuación del contenido del archivo que estamos editando. Cuando el contenido del archivo importado de situa en cualquier otra posición, se dice que se inserta.
El comando para realizar esta operación es :
- Comando : C-x i
- Opción de menú : File-->Insert File
- Comando "largo" : M-x insert-file <Enter>
Veamos, gráficamente, como realizar esta operación:
Llevamos el cursor al lugar donde deseamos insertar el archivo.( Al final del buffer, en caso de querer adjuntar).
En el ejemplo, queremos que la inserción se realice tras la X.
 |
Tras introducir el comando, en el mini-buffer aparece un mensaje (Insert File:) pidiéndonos que introduzcamos el nombre del archivo que queremos insertar. En nuestro caso, archivoInsert.
 |
Tras pulsar <Enter>. el contenido de archivoInsert se inserta en la posición del cursor.
 |