Páginas

viernes, 25 de agosto de 2017

emacs: comandos básicos

Glosario

C es la tecla CTRL, así que C c es igual a CTRL+c
M es la tecla meta o ALT, así que M x es igual a ALT+x
DEL es la tecla alargada con una flecha hacia la izquierda. Puede haber alguna tecla llamada del o supr, pero no es DEL
SPC es la barra espaciadora, y RET es la tecla de return.

C x b significa teclear primero CTRL+x, y luego b. C x C b significa teclear x y b mientras se mantiene CTRL pulsado.

Abriendo y cerrando sesión

C x C f abre (encuentra) un buffer o archivo. Usualmente al hacer RET emacs entra en modo dired, que permite navegar por los archivos del ordenador.
C x C b muestra un buffer con la lista de buffers
C x b para ir a un buffer concreto

Guardar y salir

C x C w guardar el buffer actual en otro archivo
C x C s salvar los cambios del buffer activo
C x s salvar buffers abiertos
M x nombre-archivo salvar el archivo actual con otro nombre

C z suspender emacs
C x C c cerrar emacs

Navegando en el documento

Estos comandos son equivalentes a las flechas del teclado:
C n avanza una línea (new line)
C p retrocede una línea (previous line)
C f avanza el cursor una posición
C b retrocede el curso una posición

C v avanza una página
M v retrocede una página
C l centra la página en el cursor, si se repite el comando lleva el cursor a la parte superior

M f avanza una palabra
M b retrocede una palabra

Para ir al inicio o al final:
C a inicio de línea
C e final de línea

M a inicio de frase
M e final de frase

M < inicio del documento
M > final del documento

Borrar, eliminar y pegar

Para borrar:
DEL borra carácter anterior
C d borra carácter siguiente
M DEL borra palabra anterior
M d borra palabra siguiente
C k borra hasta el fin de la línea
M k borra hasta el final de la frase

C SPC inicia selección de una región. El comando C x h selecciona todo el buffer.
C w elimina la selección (en terminología usual, corta)
C y inserta la última selección eliminada
M y inserta selecciones anteriores

emacs no "olvida" la última selección eliminada, así que para copiar hay que hacer Cw Cy, y luego hacer C y en el lugar en que se desee copiar. Para dejar de marcar una región, también se ha de hacer Cw Cy.

C / o C _ Deshacer este (y otros) comandos

Buscar y reemplazar

Comandos de búsqueda incremental:
C s buscar hacia adelante del texto
C r buscar hacia atrás

Cuando se ejecuta el comando, hay que entrar la cadena a buscar. Luego se puede ir a la siguiente ocurrencia haciendo C s, o a la anterior haciendo C r

M % búsqueda con reemplazo

Ventanas

C x 1 cerrar todas las ventanas menos la actual
C x 2 abrir una nueva ventana debajo de la actual con el mismo buffer
C x 3 abrir una nueva ventana a la derecha de la actual con el mismo buffer
C x 4 C f abrir un nuevo archivo en una ventana debajo de la actual
C x 5 C f cerrar la actual ventana y abrir un nuevo archivo en otra

C x o llevar el cursor activo a otra ventana
C M v desplazar los contenidos de otra ventana sin moverse de la actual

Comandos

M x ejecuta una función de emacs. Por ejemplo M x replace-string realiza una sustitución de cadena de caracteres.

Pedir ayuda

C h t leer el tutorial
C h c + comando breve descripción del comando
C h k + comando abre nueva ventana con ayuda sobre el comando
C h m ayuda sobre el medio

miércoles, 9 de agosto de 2017

Unix, bash shell, git and GitHub references

A list of resources for Unix and bash shell scripting:

The Wikibooks page of bash shell scripting:
https://en.wikibooks.org/wiki/Bash_Shell_Scripting

The Unix workbench, the book of Sean Kross:
https://github.com/seankross/the-unix-workbench

The introductory page to GitHub:
https://guides.github.com/activities/hello-world/

A formal introduction to git:
https://git-scm.com/book/en/v2/Getting-Started-Git-Basics

A more straitghtforward introduction to git:
http://rogerdudler.github.io/git-guide/ 

A tutorial to use GNU screen to manage persistent terminal sessions:
https://www.linode.com/docs/networking/ssh/using-gnu-screen-to-manage-persistent-terminal-sessions

The GNU screen manual
https://www.gnu.org/software/screen/manual/screen.html

Feel free to report additional resources!