====== EMACS ======

GNU Emacs es el editor de texto con presentacion en terminal, estrella del sistema operativo GNU, y esta disponible en muchas plataformas.

Su fichero de configuracion es ~/.emacs.el.

Para cargar un archivo en Emacs podriamos utilizar:

emacs fichero

Si el archivo ya existe, se te presentara entonces la primera pagina del texto en pantalla.

La manera mas sencilla de aprender emacs es el completo tutorial en linea que incluye. Para ello usa Esc para ir al modo de comandos, e ingresa help-with-tutorial.

Comandos de Emacs

Los comandos en Emacs son caracteres de control (realizados mientras presionamos la tecla Ctrl mientras tipeamos otro caracter) o en prefijos por un conjunto de caracteres reservados Esc o Ctrl+x.

Podremos tipear tecla Esc directamente (porque realmente es un caracter) y seguirla por otro caracter. La tecla Ctrl debe mantenerse presionada mientras tipeamos el otro caracter.

Comandos Comunes

Retroceder Borra hacia atras
Supr Borra hacia adelante
Ctrl+Barra espaciadora Selecciona/bloque de texto
Ctrl+k Borra todo el texto desde el cursor hasta el final de la linea
Ctrl+/ Deshacer
Ctrl+g Cancelar comando
Ctrl+x,Ctrl+c Salir

Comandos de Ayuda

Ctrl+h help-command: Muestra el primer caracter en montones de archivos de ayuda
Ctrl+h,t help-with-tutorial: Comando que ejecuta el tutorial de Emacs
Ctrl+h,i information: muestra la mayoria de los comandos de Emacs
Ctrl+h,k describe-key: Informa que hace una tecla particular
Ctrl+h,a command-apropos: pregunta una cadena y luego busca todos los comandos de Emacs que la contengan
Esc+? tambien hace command-apropos
Ctrl+h ? help-for-help: Describe como usar las ayudas.

Manejo de ficheros y comandos de guardado

Ctrl+x,Ctrl+f Abrir fichero: solicita el nombre de fichero a buscar, y lo carga en un buffer de edicion del mismo nombre
Ctrk+x,Ctrl+s Guardar: almacena el buffer en el disco con un nombre asociado
Ctrl+x,Ctrl+w Guardar como: Solicita un nuevo nombre de archivo y escribe el buffer en el

Comandos de Movimiento del Cursor o de la pantalla

Emacs operaba en antiguos sistemas UNIX, cuyas terminales iniciales carecian de teclas de control asociadas a los teclados actuales. Normalmente hoy utilizamos las flechas de cursor y las de control del cursor y control de paginado, pero en Emacs podremos contar tambien con las equivalencias de los teclados antiguos.

Flechas del cursor Mueve el cursor
Ctrl+a Mueve el cursor al Inicio de la linea
Ctrl+e Mueve el cursor al Fin de la linea
Ctrl+f Mueve el cursor hacia adelante un caracter
Ctrl+b Mueve el cursor hacia atras un caracter.
Esc+f Avanza el cursor una palabra
Esc+b Retrocede el cursor una palabra
Ctrl+n Mueve el cursor a linea a continuacion
Ctrl+p Mueve el cursor a la linea previa
Ctrl+v Avanza pantalla
Esc+v Retrocede pantalla
Esc+<; Va al inicio del buffer
Esc+>; Va al final del Buffer

Comandos para Copiar y Borrar

Ctrl+@ set-mark-command Marca el comienzo de un area de texto a ser operada
Ctrl+d delete-char Borra el caracter debajo del cursor ("Supr")
Esc+d,d delete-word Borra desde el cursor hasta el final de la palabra inmediatamente por delante del cursor
Cttl+k kill-line Elimina la linea actual
Ctrl+w kill-region Borra el area de texto entre la marca y la posicion actual del cursor.
Ctrl+y yank inserta en la posicion actual del cursor actual o en la localizacion mas recientemente borrada
Esc+w copy-region-as-kill Copia un area entre la marca y el cursor al buffer de borrado, de modo que pueda ser colocado en otro lado.

Comandos de Busqueda

Ctrl+s isearch-forward Busca incrementalmente una cadena de texto.
Ctrl+r isearch-backward Similar al anterior, pero busca la cadena en sentido inverso
Esc+% query-replace Buscar y reemplazar

Comandos de Ventana y Buffer

Ctrl+x,0 zero-window Borra la ventana actual
** Ctrl+x,2** double-window divide la ventana actual en dos partees, permitiendo editar en dos localizaciones diferentes de un mismo archivo, o permitiendo ver dos ficheros distintos a la vez
Ctrl+x,b switch-to-buffer Presenta un buffer distinto en pantalla
Ctrl+x,o other-window Mueve el cursor a la otra ventana (asumiendo que existan dos ventanas o buffers abiertos a la vez
Ctrl+x, Ctrl+b list-buffers lista los buffers cargados en memoria

Salir de Emacs, corregir errores y otros

Ctrl+x, Ctrl+c save-buffers-kill-emacs Guarda los buffers editados pero no guardados sale de Emacs.
Ctrl+x, Ctrl+z suspend Pasa emacs a segundo plano y vuelve a la shell. Tipea fg para volver a Emacs.
Ctrl+g keyboard-quit Si mientras tipea un comando comete un error, aborta el comando en progreso.
** Ctrl+u** universal-argument Si desea repetir un comando varias veces ingrese este comando, ...seguido de un nro. (para la cantidad de veces) ...seguido de un comando que desea repetir
Ctrl+x,u undo deshace el ultimo comando ingresado, en caso de haber cometido un error.
Esc+x execute-extended-command pregunta el nombre de un comando de emacs; Le permite ejecutar un comando si conocer como se llama, pero no puede recordar su atajo.

Recursos adicionales

Ver: https://hispa-emacs.org/

Diferencias con Vi

A diferencia de Vi, Emacs no es un editor con modo de insercion, lo que significa que cualquier caracter que ingresemos en Emacs se insertara automaticamente en el archivo, a no ser que incluya un prefijo de Comando.

Otra distincion entre Emacs y Vi consiste en que emacs es capaz de editar varios archivos a la vez. La ventana de Emacs puede dividirse en varias ventanas, cada una de las cuales presentara una vista en el buffer de memoria. Cada buffer de memoria corresponde normalmente a un archivo diferente. Es por ello que muchos de los comandos listados a continuacion se emplean para leer ficheros y cargarlos en nuevos buffers, asi como mover distinto contenido entre buffers diferentes .