Volver al índice


emacs

Tutorial completo en español: http://www.nongnu.org/emacs-man-es/ . Mucho más que un editor [no un procesador]. Lo que sigue es un pequeño manual de primeros auxilios.

Cuando Emacs abre un archivo lo abre en un buffer. Cuando leemos un fichero, lo que hacemos es copiar su contenido a una zona de memoria [a un buffer] y durante la edición lo que modificamos es esa zona de memoria, el fichero como tal permanece inalterado hasta que explícitamente demos la orden de grabar en el disco las modificaciones. Cuando emacs se inicia se abren dos búffers que no están asociados a ningún fichero: scratch y messages [En ambos el nombre empieza y acaba por un asterisco, lo que indica que no es un búffer asociado a un fichero]

$ emacs -q (Arrancar emacs prescindiendo del archivo de configuracion)

$ emacs --daemon (Iniciar emacs como demonio y a continuacion con emacsclient conectar con el servidor)

$ emacsclient -c (Conectar con el servidor)

Significado de algunas teclas en la terminologia de emacs:

Alt = M (meta)

Crtl= C (control)

spc (Barra espacio)

RET (intro)

RETRO (retroceso)

$ emacs -nw (Lanzar emacs en consola. Para crear un alias: alias emacs='emacs -nw')

$ emacs -nw --debug-ini (Modo debuger para comprobar errores de sintaxis en ~/.emacs)

$ emacs -u usuario (Arrancar emacs con la configuración de otro usuario)

Teclas de socorro:

C-g (Cancelar algo: un comando, una combinación de teclas...)

C-x u (Deshacer)

M-x revert-buffer (Deshacer todo desde la última vez que se guardó)

M-x recover-session (Recuperar archivos perdidos por un fallo del sistema)

Movimiento por el texto:

C-a (ir al comienzo de una línea)

C-e (ir al final de una línea)

C-f (un caracter hacia adelante)

C-b (un caracter hacia atrás)

M-f (una palabra hacia adelante)

M-b (una palabra hacia atrás)

C-n (ir ala siguiente línea)

C-p (ir a la línea anterior)

M-a (Ir al inicio de la frase)

M-e (Ir al final de la frase)

C-v (Pagina siguiente)

M 8 C-v (baja 8 lineas la pantalla, NO 8 PÁGINAS)

M-v (Pagina anterior)

M 8 M-v (Sube 8 lineas la pantalla, NO 8 PÁGINAS)

M-< (Ir al principio del texto)

M-> (Ir al final del texto)

M-g g (Ir a la linea)

C-l (Redibuja la pantalla. La primera vez que se pulsa, coloca la linea del cursor en el centro, la segunda arriba y la tercera abajo)

Salir:

C-x C-c (Salir de Emacs)

C-x C-s (Guardar sin salir)

C-x C-w (Salir y guardar como)

C-x s (Guardar todos los ficheros abiertos. Preguntará.)

Copiar, cortar, pegar y reemplazar

C-Esp (Inicio del marcado de texto)

C-x h (Marcar todo el buffer, "Seleccionar todo")

M-w (Copiar)

C-w (Cortar)

C-y (Pegar)

C-x C-t (Copiar linea)

M-h (Selecciona un párrafo)

M-% (Primero entrar la palabra a cambiar i despues la que sustituye)

Buscar:

C-s (busca hacia adelante)

C-r (busca hacia atras)

C-s C-s (repite la busqueda)

Borrar:

M-d (Palabra despues del cursor)

M 3 M-d (Borra 3 palabras)

C-k (del cursor a fin de linea)

M 3 C-k (Borra 3 lineas)

M-k (todo el párrafo)

M 3 M-k (Borra 3 párrafos)

M-x kill-whole-line (Borrar la linea con independencia del lugar del cursor)

Ventanas:

C-x 2 (división horizontal de la ventana en dos)

C-x 3 (división vertical de la ventana en dos)

C-x 1 (Deja solo la ventana activa abierta)

C-x o (cambiar de ventana)

C-x 0 (Eliminar ventana actual)

C-x } (alarga la ventana activa en dirección horizontal)

C-x { (La acorta en dirección horizontal)

C-x ^ (La alarga en dirección vertical)

Buffers:

C-x k (cierra la buffer actual. Pide confirmación)

C-x b (Cambiar de buffer)

C-x C-b (Listar buffers en un panel)

C-x flechas derecha/izquierda (cambiar al siguiente/anterior)

Marcas:

C-x r m (Solicita nombre para la linea marcada)

C-x r b a (Ir a la linea marcada con el nombre que entremos, en este caso la "a". Si se encuentra la marca en un archivo no abierto, se abrirá)

C-x r l (Lista todas las marcas)

M-x bookmark-delete (Eliminar una marca que entremos)

C-spc C-spc (marca el punto del cursor en el texto)

C-u C-spc (Va a la marca realizada con C-spc C-spc)

C-x C-spc (Va a la penultima marca realizada con C-spc C-spc)

Imprimir:

C-u M-x ps-print-buffer-with-faces (Imprimir a ps. Luego con ps2pdf pasar a pdf)

M-x  print-buffer (Imprimir archivo con numeración y cabeceras)

M-x  lpr-buffer (Imprimir sin numeración ni cabeceras)

M-x  print-region (Imprimir trozo seleccionado con numeración y cabeceras)

M-x  lpr-region  (Imprimir trozo seleccionado sin numeración ni cabeceras)

Varios:

C-x C-f (brir un archivo)

C-o (Inserta linea en blanco a continuación del cursor)

M-x tetris (Listado de juegos en /usr/share/emacs/24.3/lisp/play/. Lanzar sin la extensión)

M-x help-with-tutorial-spec-language (abre buffer con los idiomas disponibles para el manual)

C-x d (Abre un directorio que se especifique)

C-x RET f (Entrar codificación de caracteres: iso-8859-1, utf-8..)

C-x custom (Personalizar numerosos aspectos de emacs)

C-x C-+ (Agrandar la fuente)

C-x C-- (Disminuir la fuente)

C-x z z z (Repite el último comando tantas veces como "zetas" pongamos. En este caso 3 veces )

& (Teniendo el cursor sobre un archivo en dired, permitirá entrar una aplicación para abrirla)

C-x C-o (Sólo deja una linea en blanco)

Entrar comandos de shell e insertar:

C-z (Suspende la sesion emacs y entra en la shell. Volver a emacs con fg o con %emacs)

M-! (Muestra en el mini buffer un mensaje para entrar un comando y lo abre un una ventana)

C-u M-! (Inserta la salida del comando en la posición del cursor)

C-x i (Insertar archivo en la posición del cursor)

C-c C-l (Mostrar historial de comandos)

C-u M-x eshell (Lanzar otra eshell cuando ya existe una)

ayuda:

F10 (Abre la ayuda general)

C-h k (Muestra información sobre un atajo)

C-h a (Todas las opciones de un comando)

C-h b (Ver todos los atajos)

C-h w (Muestra el atajo de la función que entremos)

C-h f (Información sobre una función)

C-h C RET (Muestra información sobre las codificaciones)

C-h v (Muestra información sobre variables)

C-h C-h (Muestra ayuda de la ayuda)

C-h e (Muestra los mensajes de log)

C-h v package-activated-list (Muestra las extensiones instaladas si lo han sido por "package")

Modo comando:

M-x recover file (levantar respaldo del archivo)

M-x apropos INTRO print (Muestra información de "print")

M-x list-faces-display (Ver lista y muestra de los estilos disponibles)

    M-x w3m-browser-url (Pedirá url para conectar. Precisa w3m-el)

M-x browse-url-firefox (Abrir una url con firefox)

M-x global-linum-mode (Mostras/esconder números de linea)

M-x global-visual-line-mode (Cortar/no cortar palabras al final de la pantalla)

M-x global-hl-line-mode (Resaltar la linea donde está el cursor)

M-x calendar (Mostrar mes actual, el anterior y el posterior)

M-x command-history  (History de comandos entrados)

M-x calculator (Calculadora muy elemental)

M-x man (mostrar man de un comando)

M-x woman (mostrar man de un comando)

M-x set-buffer-file-coding-system (Entrar codificación para el presente bufer)

M-x global-whitespace-mode (Mostrar/ocultar caracteres no imprimibles)

M-x follow-mode (al dividir un buffer en dos pantallas [C-x 3] y activar este modo menor, hace que los paneles sean uno continuación del otro)

M-x man-follow (Con el cursor sobre un comando linux, muestra la página de manual)

M-x font-lock-mode (activa/desactiva coloreado de sintasxis. Por defecto activado.)

M-x append-to-buffer (sobre una sección seleccionada, la manda a otro buffer)

M-x proced-toggle-auto-update (Visualizar procesos del sistema [como top])

Para hacer permanente cualquiera de las opciones anteriores, colocarla en ~/.emacs de la siguiente forma:

(global-set-key (kbd "<f7>") 'global-linum-mode)

Para mostrar u ocultar los numeros de linea pulsando F7

1.-

Abrir navegador de archivos. Precisa tenerlo instalado

Instalar nav:

Descarga de http://code.google.com/p/emacs-nav/. Una vez descomprimido copiar el directorio en ~/.emacs.d/ y renombrar como nav

$ emacs .emacs

Completar configuración y que se abra pulsado F8, añadir las siguientes lineas:

(add-to-list 'load-path "/home/USER/.emacs.d/nav/")

(require 'nav)

(nav-disable-overeager-window-splitting)

(global-set-key [f8] 'nav-toggle)

Abrir con M-x nav

2.-

Añadir una "lista negra" de bufferes a los que no interesar acceder (scratch, messages...).

Añadir a .emacs las siguientes lineas:

(require 'iswitchb)

(iswitchb-mode)

(add-to-list 'iswitchb-buffer-ignore "^ ")

(add-to-list 'iswitchb-buffer-ignore "*Messages*")

(add-to-list 'iswitchb-buffer-ignore "*ECB")

(add-to-list 'iswitchb-buffer-ignore "*Buffer")

(add-to-list 'iswitchb-buffer-ignore "*Completions")

(add-to-list 'iswitchb-buffer-ignore "*scratch*")

(add-to-list 'iswitchb-buffer-ignore "*ftp ")

(add-to-list 'iswitchb-buffer-ignore "*bsh")

(add-to-list 'iswitchb-buffer-ignore "*jde-log")

(add-to-list 'iswitchb-buffer-ignore "^[tT][aA][gG][sS]$")

Al pulsar C-x b (Listar buffers abiertos) El buffer que aparece en primer lugar, resaltado en otro color, es el que se mostrará al pulsar Enter. Si queremos cambiar a otro buffer pulsar C-s para rotar el orden de los elementos de la lista.

Nota.- A partir de la versión emacs-24.4 iswitchb ha sido substituido por ido. Las lineas a añadir a .emacs son:

(require 'ido)

(ido-mode 'buffers) ;; only use this line to turn off ido for file names!

(setq ido-ignore-buffers '("^ " "*Completions*" "*Shell Command Output*"

                           "*Messages*" "Async Shell Command" "*scratch*"

                           "*tramp*"))

3.-

Escuchar música con emms.

Instalar emms en el sistema mediante repositorio y descargar http://ftp.gnu.org/gnu/emms/ , descomprimir y mover el directorio a ~/.emacs.d/. En .emacs colocar las lineas:

(add-to-list 'load-path "~/.emacs.d/emms-4.0/")

(require 'emms-setup)

(emms-standard)

(emms-default-players)

Llamar com M-x emms (Pulsando TAB apareceran las opciones). Salir con M-x emms-stop

4.-

Corrector ortográfico. apt-get install aspell-es dictionary-el aspell-ca

Emacs coge automaticamente el idioma por defecto del sistema. Para modificar el idiome:

M-x ispell-change-dictionary

Corregir un texto:

M-x ispell

Opciones en este modo:

ESP (Saltar la palabra)

r (modificar personalmente)

dígito (Substituir palabra por la del dígito pulsado)

a (Aceptar la palabra incorrecta)

i (incorporar palabra al diccionario personal)

C-g (Salir de corrección. Con C-u M-$ vuelve a corrector)

q (Salir de corrector)

C-l (Actualizar pantalla)

Corregir un texto en tiempo real:

M-x flyspell-mode

Opciones en este modo:

M-$ (Sobre la palabra mal escrita para ver opciones)

Tambien podemos activar por defecto las correcciones añadiendo en .emacs:

(setq-default flyspell-mode t)

Para los comentarios en los lenguajes de programación:

M-x flyspell-prog-mode

Para los comentarios en modo latex añadir en .emacs:

(add-hook 'LaTeX-mode-hook 'flyspell-mode)

5.-

Recargar archivo de configuración .emacs despues de una modificación:

M-x load-file (Cuando solicite el nombre del archivo colocar .emacs)

M-x eval-buffer (Si el archivo .emacs se encuentra en un buffer)

6.-

Conectar a un servidor ssh:

Descargar tramp de http://ftp.gnu.org/gnu/tramp/ descomprimir y mover la carpeta al directorio ~/emac.d/ . En el archivo de configuración .emacs añadir las lineas:

(require 'tramp)

(setq tramp-default-method "ssh")

Y si queremos activar variables para debuggear problemas añadir:

(setq tramp-debug-buffer t)

(setq tramp-verbose 10)

Abrir sesión de emacs y acceder al host remoto empleando alguno de los siguientes metodos según nuestro /etc/hosts:

C-x C-f /ssh:USER@host_remoto:/home/USER/

C-x C-f /USER@host_remoto:/home/USER

C-x C-f /host_remoto:/home/USER

Y si el puerto es distinto del 22, añadiendo a las opciones anteriores #puerto al estilo:

C-x C-f /ssh:USER@host-remoto#2222:/home/USER

Pedirá contraseña.

Nota.- Después de pulsar el atajo, no olvidar borrar la referencia al directorio local ~/ dejándolo en /

7.-

Temas de colores:

Descargar el paquete tar.gz de: http://download.gna.org/color-theme/

Una vez decomprimido mover la carpeta a ~/.emacs.d:

~/.emacs.d/color-theme

Y añadir a .emacs las lineas:

(add-to-list 'load-path (expand-file-name "~/.emacs.d/color-theme/"))

(require 'color-theme)

(color-theme-initialize)

Arrancar emacs y:

M-x color-theme-select

Mostrará en un nuevo buffer una lista de temas disponibles que podrán probarse seleccionandolos con "intro" o la tecla "i". Una vez escogido el tema, pulsando la letra d, muestra la linea que ha de entrarse en .emacs. Supongamos que escogemos Charcoal Black, añadiremos la linea (color-theme-charcoal-black) quedando toda la entrada:

(add-to-list 'load-path (expand-file-name "~/.emacs.d/color-theme/"))

(require 'color-theme)

(color-theme-initialize)

(color-theme-charcoal-black)

Otros comandos reelacionados con colores:

M-x set-foreground-color (Pedirá color para las fuentes).

M-x set-background-color (Pedirá color para el fondo)

M-x set-face-foreground (Afinar más el color de las fuentes según modos)

M-x set-face-background (Afinar más el color de fondo según modos))

M-x list-colors-display (Listado, muestra y código de colores disponibles)

8.-

Consultando directorios: dired, navegador de archivos de emacs [C-x d].

g (Despues de una modificación actualiza la pantalla)

v (Muestra el archivo en modo solo-lectura

q (Regresa al listado)

e [enter] (Editar el archivo)

d (Marca un archivo para su eliminación colocando una "D" en la 1ª columna)

u (Elimina la marca anterior)

x (Elimina los archivos marcados con una "D")

D (Eliminación inmediata)

C (Copiar)

3C (Copiar el archivo de la linea del cursor y los 3 siguientes)

R (Renombrar o mover)

Z (Comprimir descomprimir [compress (.z .Z) y gzip (.gz)])

X (Entrar comandos de shell [chmod, grep, find, sort ...])

+ (Crear directorio)

** (Marcar todos los ejecutables)

*/ (Marca todos los directorios)

*! (Desmarca todo)

M (Cambiar los permisos. Sólo poner la numeración [777, 755...])

O (Cambiar el propietario)

P (Imprimir el fichero. El comando lp imprimirá con la impresora predeterminada)

h (Muestra la ayuda y todos los atajos de teclado)

S (Crear un enlace simbólico)

Tambien es posible mostrar/ocultar detalles con: M-x dired-hide-details-mode

9.-

M-x term [Emulador de terminal]

Utiliza dos modos de entrada: El modo caracter que envia cada caracter de entrada directamente a la subshell, a excepción del carácter de escape [C-c] y el modo línea que actúa como modo Shell [Permite entrada de todas las combinaciones de teclas emacs, desplaza el cursor por la pantalla con las flechas, puede marcarse trozos de texto para copiar...]. Para alternar entre estos dos modos:

C-c C-j (Cambia a modo línea)

C-c C-k (Cambia a modo caracter)

Nota.- Puede que para alternar entre modos sea preciso hacerlo con M-x term-mode

Algunos detalles:

Para substituir el nombre *terminal* por otro: M-x rename-buffer

Consultar el historial de comandos con M-p (Hacia atras) y M-n (Hacia adelante)

10.-

Uso de sudo. Los mismos ejemplos sirven para su. Precisa tramp [ver ssh]. Entrar el siguiente código en .emacs autoexplicativo:

;; Uso de sudo: C-x C-f /sudo::/etc/hosts

;; C-x C-f /sudo:root@localhost:/etc/hosts  o C-x sudo-find-file

(defun sudo-find-file (file-name)

  "Like find file, but opens the file as root."

  (interactive "FSudo Find File: ")

  (let ((tramp-file-name (concat "/sudo::" (expand-file-name file-name))))

  (find-file tramp-file-name)))

;; Atajo de teclado para sudo:

(global-set-key (kbd "C-x F") 'sudo-find-file)

11.-

Abrir archivos de dired con aplicaciones externas pulsando F8:

Copiar en .emacs el siguiente código:

(defun external-app ()

 "In dired, open the file named on this line."

  (interactive)

  (let* ((file (dired-get-filename nil t)))

    (call-process "xdg-open" nil 0 nil file)

(global-set-key (kbd "<f8>") 'external-app)

12.-

Abrir archivos de dired con determinadas aplicaciones externas:

Descargar la libreria de http://stud4.tuwien.ac.at/~e0225855/misc/openwith.el y moverlo a la carpeta ~/.emacs.d/

Y copiar el siguiente codigó en ~/.emacs:

(add-to-list 'load-path "~/.emacs.d/openwith.el")

(require 'openwith)

(setq openwith-associations '(("\\.pdf\\'" "evince" (file))))

(setq openwith-associations '(("\\.flv\\'" "vlc" (file))))

(openwith-mode t)

Colocar tantas lineas del tipo "(setq openwith-associations '(("\.flv\'" "vlc" (file))))" como archivos queramos asociar.

13.-

Algunos ajustes en el prompt de eshell que pueden incorporarse al archivo .emacs:

Modificar el prompt para mostrar el directorio de trabajol. Para mostrar el usuario: (concat (getenv "USER")

(setq eshell-prompt-function

(lambda nil

(concat (eshell/pwd)

(if (= (user-uid) 0) " # " " $ "))))

Usar bash en lugar de la shell de emacs:

(setq shell-file-name "/bin/bash")

Modificar el mensaje de bienvenida al entrar en eshell:

(setq eshell-banner-message "\n... entrant a  emacs shell...\n\n")

Incorporar colorines a las salidas de los comandos:

(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)

Nota.- Si ya tenemos una terminal [eshell o term] abierta no permite abrir ninguna más a menos de que le cambiemos el nombre:

M-x rename-buffer

14.-

Para poder copipastear de emacs a las X y viceversa colocar en .emacs el código:

;; http://hugoheden.wordpress.com/2009/03/08/copypaste-with-emacs-in-terminal/

(setq x-select-enable-clipboard t)

(unless window-system

(when (getenv "DISPLAY")

(defun xsel-cut-function (text &optional push)

(with-temp-buffer

(insert text)

(call-process-region (point-min) (point-max) "xsel" nil 0 nil "--clipboard" "--input")))

(defun xsel-paste-function()

(let ((xsel-output (shell-command-to-string "xsel --clipboard --output")))

(unless (string= (car kill-ring) xsel-output)

    xsel-output )))

(setq interprogram-cut-function 'xsel-cut-function)

(setq interprogram-paste-function 'xsel-paste-function)))

15.-

Operar con trozos seleccionados [C-espacio]

C-x r s (copy-to-register) Ponerle un nombre y guardarla en un registro

C-x r i (insert-register) Insertará el registro que le indiquemos

M-x view-register (ver el contenido de un registro)

16.-

Disponer de un bloc de notas (M-x remember) en emacs que se lance con C-c &

$ cd ~/.emacs.d

$ git clone git://repo.or.cz/remember-el.git remember

Colocar en la configuración:

$ nano .emacs

Añadir las lineas:

(add-to-list 'load-path "~/.emacs.d/remember")

(require 'remember)

(global-set-key (kbd "C-x &") 'remember)

Una vez entrado el texto pulsar C-c C-c para poner la fecha. Se guardan todas las notas en el fichero ~/.notes

17.-

Reemplazar texto:

M-x query-replace [M-x %] (Busca y pregunta antes de substituir)

Algunas opciones del comando:

y (Reemplazar la coincidencia actual)

n (No reemplazar la coincidencia actual)

q (Reemplazar la coincidencia actual y salir)

C-r (Ir al editor recursivo)

! (Reemplazar todo)

^ (Ir al anterior reemplazo)

E (Editar la norma de reemplazo

M-x replace-string (Busca y reemplazar sin preguntar)

18.-

Instalar extensiones de emacs a partir de repositorios. Descargar el archivo package.el:

package.es

Y copiarlo en .emacs.d/

Colocar en .emacs las lineas:

(add-to-list 'load-path (expand-file-name "~/.emacs.d/package.el"))

(require 'package)

(package-initialize)

(setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/")

                         ("marmalade" . "http://marmalade-repo.org/packages/")

                         ("melpa" . "http://melpa.milkbox.net/packages/")))

Teclas de control:

M-x describe-mode (Listado de teclas de control)

M-x package-list-package (Recargar la lista de paquetes)

M-x package-menu-mode (Entrar en modo package)

Una vez entrado en el modo package:

enter (muestra una descripción del paquete)

i (Marcar para instalar)

u (Desmarcar)

d (Marcar para eliminar)

x (Instalar o desinstalar un paquete)

r (Resfrescar el listado)

19.-

Modo markdown. Descarga de la extensión: git clone git://jblevins.org/git/markdown-mode.git y colocar en .emacs.d/

(add-to-list 'load-path "~/.emacs.d/markdown-mode")

(autoload 'markdown-mode "markdown-mode" t)

(add-to-list 'auto-mode-alist '("\\.markdown\\'" . markdown-mode))

(add-to-list 'auto-mode-alist '("\\.md\\'" . markdown-mode))

Algunos atajos

M-x markdown-mode (Entrar en modo markdown)

C-c C-t 1 (fuente de mayor tamaño. Números de 2 al 6 ir decreciendo el tamaño)

C-c C-h (Visualizar todas los comandos disponibles)

C-c C-a l (insertar link con la forma [texto](URL))

C-c C-a u (Insertar url)

C-c C-c p (Ver la versión html del texto en pantalla y visualizarla en el navegador)

C-c C-c L (insertar link referenciado)

C-c C-c v (Visualizar la página en el navegador y exportar archivo a html)

C-c - (Insertar linea)

C-c C-c e (Exportar archivo a formato html con el mismo nombre)

C-c C-x m (Insertar listado)

C-c C-s b (Insertar cita)

C-c C-s c (Insertar código)

C-c C-s p (Insertar literal)

C-c TAB i (Insertar imagen en formato: [texto](url))

20.-

Algunos atajos para el navegador w3m:

B (w3m-view-preview-page) Ir a la pagina anterior

N (w3m-view-next-page) Ir a la página siguiente

I (w3m-view-image) Ver imagen con una aplicación externa

A (w3m-bookmark-add-current-url) Afegir la url activa a les adreces d'interès

M-a (w3m-bookmark-add-this-url) Afegir una url a les adreces d'interès

v (w3m-bookmark-view) veure les adreces d'interès

E (w3m-bookmark-edit) (Visitar l'arxiu de les adreces d'interès)

C-k (w3m-bookmark-kill-entry) (Treure una url de les adreces d'interès)

21.-

Dando un pequeño formato a un texto (enriched-mode)

M-x enriched-mode (Activa/desactiva el modo enriquecido)

M-o d (por defecto)

M-o b (negrita)

M-o i (cursiva)

M-o l (negrita y cursiva)

M-o u (subrallado)

M-x facemenu-set-foreground (cambiar el color de la letra del texto marcado y de lo que se escriba a continuación)

M-x facemenu-set-background (cambiar el color de fondo del texto marcado y de lo que se escriba a continuación.

M-x find-file-literally (abrir el fichero "literalmente" sin el modo "enriched" pero viendo los comandos de formato)

22.-

Algunas opciones posibles al listar buffer con C-x C-b

n (siguiente buffer de la lista)

p (buffer anterior de la lista)

d (marcar buffer para eliminación)

% (marcar o desmarcar buffer como sólo lectura)

m (marcar buffer para ser mostrado)

u (desmarcar buffer)

Del (desmarcar buffer marcado con "u")

o (reemplazar la otra ventana con el buffer actual)

1 (mostrar buffer en pantalla completa)

2 (mostrar los siguientes 2 buffers en ventana horizontal)

v (mostrar los buffers marcados por "m")

x (ejecutar comandos de marcado)

q (salir del listado de buffers)

23.-

Algunas opciones al listar marcadores (C-x r l)

d (marcar para eliminar)

x (Ejecutar la eliminación)

r (cambiar nombre del marcador)

s (guardar listado)

f (mostrar el marcador)

t (Mostrar/ocultar la ruta a los ficheros)

q (salir)

24.-

Grabar macros

C-x ( (Empezar a grabar secuencia de caracteres)

C-x ) (Terminar la grabación)

C-x e (Reproducir la macro grabada)

Si quremos un atajo para reproducir la última macro grabada con, por ejemplo Mayuscula F1, colocar en .emacs:

(global-set-key [(shift f1)] 'call-last-kbd-macro)

25.-

Algunos atajos de latex-mode, auctex y reftex

    C-c TAB (Página info de auctex)

    C-c * (Selecciona la sección actual)

    C-c ' (Marca como comentario todo el párrafo)

    C-c ; (Marca como comentario toda la zona previamente seleccionada)

    C-c : (Elimina comentarios de la zona previamente seleccionada)

    C-c " (Elimina comentario de una linea)

    C-c { (Inserta aturomaticamente las llave de apertura y de cierre)

    C-c ] (Cierra un entorno)

    C-c C-e (insertar automática el par de órdenes de apertura y cierre de un entorno)

    ESC TAB (Autocompletado al empezar una etiqueta con \)

    C-c C-m (al empezar a teclear el nombre del macro lo autocompleta y lo inserta

    M-C-a (Va a la línea de apertura del entorno actual)

    M-C-e (Va a la línea de cierre del entorno actual)

    C-u (Sustituye el formato actual por el que se indique)

    C-c C-s (Preguntará por tipo de unidad a insertar. Por defecto igual que la actual)

    C-u C-c C-s (sugerirá el nivel inmediatamente inferior al actual)

Especificación de formatos para letras:

    C-c C-f C-r (\textrm{} Inserta texto roman)

    C-c C-f C-f (\textsf{} Inserta texto sanserif)

    C-c C-f C-t (\texttt{} Inserta texto tipo máquina de escribir)

Especificación por trazo e inclinación:

    C-c C-f C-b (\textbf{} Inserta texto en negrita (trazo grueso))

    C-c C-f RET (\textmd{} Inserta texto normal (trazo medio))

    C-c C-f C-i (\textit{} Inserta texto en cursiva)

    C-c C-f C-s (\textsl{} Inserta texto inclinado)

    C-c C-f C-e (\emph{} Inserta texto enfatizado)

Otras especificacion es de formato:

C-c C-f C-u (\textup{} Inserta texto de perfil recto)

    C-c C-f C-c (\textsc{} Inserta texto en versales)

    C-c C-f C-n (\textnormal{} Inserta texto normal)

    C-c C-f C-d (Borra la especificación de formato actual)

    C-c C-q C-r (Indentar párrafo seleccionado)

    C-c C-q C-p (Reformatea un párrafo a 70 caracteres por linea)

Activando el modo menor "outline" (M-x outline-minor-mode) podemos acceder a los siguientes atajos:

    C-c @ C-t (Pliega las secciones)

    C-c @ C-a (Despliega las secciones)

    C-c @ C-n (Próximo título)

    C-c @ C-p (Título anterior)

    C-c @ C-f (Próximo título del mismo nivel

    C-c @ C-b (Anterior título del mismo nivel)

    C-c @ C-u (Título del nivel inmediatamente superior)

Ver estructura del documento (M-x reftex-mode):

    C-c = (Abre un ventana con la estructura del documento)

Algunas teclas disponibles en esta ventana en reftex-mode:

    ? (Muestra sumário y opciones disponibles)

    q (Cierra la ventana)

    k (Cierra ventana y elimina el buffer)

    ESP (Muestra en la otra ventana lo seleccionado)

    f (Activa/desactiva mostrar donde estamos en la otra ventana en tiempo real)

    TAB (Movernos a la otra ventana correspondiente al título seleccionado)

    RET (Oculta la ventana del indice y el cursor va al título seleccionado)

    g (Actualizar el buffer)

Referencia a las etiquetas:

    C-c ) (Abre una ventana con las referencias)

Algunas teclas disponibles en la ventana de etiquetas:

    RET (buscar etiquetas de todo tipo)

    e (buscar etiquetas de tipo equation)

    f (buscar etiquetas de tipo figure)

    i (buscar etiquetas de tipo enumerate)

    n (buscar etiquetas de tipo footnote)

    N (buscar etiquetas de tipo endnote)

    s (buscar etiquetas de tipo section)

    t (buscar etiquetas de tipo table)

Una vez escogida las etiquetas a mostrar se abre una ventana con las siguientes opciones:

    ? (Muestra opciones disponibles)

    q (Cierra el buffer)

    s (Cambia el tipo de etiqueta que se está buscando)

    SPC (Mostra en la otra ventana lugar de la etiqueta seleccionada)

    f (Activa/desactiva mostrar donde estamos en la otra ventana en tiempo real)

Comandos externos.

    C-c C-c (La primera vez que se ejecuta, compila. La segunda muestra el pdf)

    C-c C-v (Mostrar directamente el pdf)

    C-c C-w (Activa/desactiva mostrar como error desbordamientos de cajas de texto)

    C-c ` (Muestra la linea en la que se produce un error)

26.-

Función que abre en firefox una url, un link o una imagen sobre la que se encuentra el cursor en un archivo de texto pulsado C-c b:

(defun w3mext-open-link-or-image-or-url ()

    (interactive)

    (let (url)

    (if (string= major-mode "w3m-mode")

        (setq url (or (w3m-anchor) (w3m-image) w3m-current-url)))

        (browse-url-generic (if url url (car (browse-url-interactive-arg "URL: "))))

        ))

(global-set-key (kbd "C-c b") 'w3mext-open-link-or-image-or-url)

27.-

Navegador eww [nativo de emacs escrito en elisp y disponible a partir de la versión 24.4]. Se abre con M-x eww. Si el texto ingresado no tiene forma de URL realizará la busqueda en DuckDuckGo.

Algunos atajos:

q (salir)

g (recargar la página)

w (copiar la URL actual al kill ring)

d (descargar la URL bajo el cursor)

l (ir  a la página anterior)

r (ir a la página siguiente)

H (ver historial de sitios visitados. Se pierde al cerrar eww)

& (abrir la URL actual en un navegador web externo)

v (ver código fuente. Se copia en un buffer nuevo y se activa html-mode si está disponible)

28.-

Sincronizar los marcadores de firefox con emacs:

Para guardar los marcadores de firefox al pulsar una combinación de teclas en un fichero org de emacs y, simultaneamente, que el navegador interprete dicho fichero como enlaces clicables precisamos insalar dos plugins en firefox:

 Org capture: http://chadok.info/firefox-org-capture/

 Linkification: http://yellow5.us/firefox/linkification/

Dejar visible la barra de marcadores (View -> Toolbars -> Bookmarks toolbar) y clicar sobre ella con el botón derecho, "Añadir dirección de interes" (Bookmarks toolbar), en "nombre" colocar el que se quiera, yo tengo Org_marcadores y en "ubicación" la ruta en la que queremos guardar el archivo de bookmarks: file:///home/usuario/.emacs.d/org/bookmarks.org o si hemos de sincronizar varios equipos, en dropbox: file:////home/usuario/Dropbox/org/bookmarks.org. Desactivar la casilla "Cargar este marcador en la barra lateral".

Luego, indicar el atajo para guardar los bookmarks en firefox y qué aplicacion usaremos para llamar a emacs:

"Herramientas" -> "Complementos" -> "Org mode capture" -> "Preferéncias", indicar en "emacsclient" la ruta al ejecutable "/usr/bin/emacsclient" y como "hotkey" el valor de "alt-r"

Y para terminar añadir al archivo de configuración .emacs las lineas:

;;; Bookmarks pulsando M-r en firefox colocará en el archivo mencionado

;;; la url(%l), pequeña descripción(%c) y fecha(%t)

(server-start)

(require 'org-protocol)

(setq org-capture-templates

(quote (("f" "Firefox" entry (file "/home/pep/.emacs.d/org/bookmarks.org")

         "* %l %c %t\n")

       )))

Un listado de como usar los templates (%l, %c, %t...) en: https://www.gnu.org/software/emacs/manual/html_node/org/Template-expansion.html#Template-expansion

Proceso: Con emacs abierto como servidor o lanzando desde el propio emacs M-x server-start, vamos a firefox y, estando en una página que queremos añadir a marcadores, pulsamos Alt-r. Se abrirá una ventana de emacs preguntando como queremos guardar el link y pulsamos "f" (firefox) ya continuación C-c C-c. Cerramos la ventana. Podemos acceder a los marcadores ya sea desde las direcciones de interés del navegador o desde el archivo .emacs.d/org/bookmarks.org de emacs.

29.-

Algunos notas sobre git: magit

M-x magit-status (Acceso a magit para activar los siguientes atajos)

s (Organizar archivos)

cc (escribir el mensaje del commit. Una vez entrado el texto con C-c C-c para el commit)

Pu (git push [M-x magit-push-current])

Fu (git pull [M-x magit-pull-current])

ll (git log [M-x magit-log-current])

30.-

elfeed, lector de noticias

elfeed-load-opml (Importar un archivo de feeds. El contenido se coloca en el archivo de configuración .emacs)

G (actualizar fuentes)

r (Marcar noticia como leída)

u (Marcar noticia como no leída)

REF (Abrir noticia en el buffer)

b (Abrir noticia en el navegador por defecto)

Ejemplo de entradas:

(setq elfeed-feeds

  '("http://xiquetam.blogspot.com/feeds/posts/default"

    "http://www.genbeta.com/atom.xml"

    "http://www.linux-party.com/backend.php"

    "http://www.theinquirer.es/feed/atom"

    ;; más entradas

    ))

Aguardar respuesta del host 30 segundos:

 (setf url-queue-timeout 30)

Modificar ciertas variables de color si no se visualizan bien:

  (custom-set-faces

   '(elfeed-search-date-face ((t (:background "black" :foreground "white"))))

   '(elfeed-asearch-date-format (quote ("%d-%m-%Y" 10 :left)))

   '(elfeed-search-feed-face ((t (:background "black" :foreground "white"))))

   '(elfeed-search-title-face ((t (:background "black" :foreground "white")))))

Aumentar el espació para los titulares. Por defecto 70

(custom-set-variables

  '(elfeed-search-title-max-width 130))

31.-

Utilidades de red nativas de emacs (M-x ...)

ifconfig, ipconfig, iwconfig, netstat, arp, route, traceroute, ping, nslookup-host, nslookup, dns-lookup-host, run-dig, dig, ftp, smbclient, smbclient-list-shares, finger, whois y whois-reverse-lookup.

No es necesario ajustes especiales en .emacs, pero puede personalizarse algún aspecto, por ejemplo que ping solo mande 3 paquetes:

(setq ping-program-options '("-c" "3"))

32.-

impatient-mode

Permite mostrar los contenidos del búfer en una página web que se actualiza automáticamente cuando se realizan cambios.

M-x httpd-start (Arranca el servidor)

Colocarse en el buffer que quiere compartirse y:

M-x impatient-mode

En cualquier ordenador de la red se accede al buffer con la dirección: http://IP_o_host:8080/imp/

33.-

Otros ajustes que pueden incorporarse a .emacs precedidas con la explicación comentada:

;;Mostrar consola al pulsar F5:

(global-set-key (kbd "<f5>") 'eshell)

;;Especificar número de espacios en las tabulaciones.

(setd-default  tab-width  4)

;;Mostrar reloj y con formato 24 horas

(setq display-time-24hr-format t)

(display-time)

;;Descomprimir archivos.

(auto-compression-mode t)

;;Reemplazar "yes" y "no" por "y" y "n" en el prompt.

(fset 'yes-or-no-p 'y-or-n-p)

;;Sin copias de seguridad.

(setq make-backup-files nil)

;; Embellecer el calendario:

(setq view-diary-entries-initially t

mark-diary-entries-in-calendar t

number-of-diary-entries 7)

(add-hook 'diary-display-hook 'fancy-diary-display)

(add-hook 'today-visible-calendar-hook 'calendar-mark-today)

;; Poner en español el calendario:

(setq calendar-week-start-day 1

calendar-day-name-array

["Domingo" "Lunes" "Martes"

"Miercoles" "Jueves" "Viernes" "Sábado"]

calendar-month-name-array

["Enero" "Febrero" "Marzo" "Abril"

"Mayo" "Junio" "Julio" "Agosto" "Septiembre"

"Octubre" "Noviembre" "Diciembre"])

;; Suprimir espacios al final de la linea y lineas en blanco del final:

(add-hook 'before-save-hook 'delete-trailing-whitespace)

;; Guardar la sessión al cerrar emacs y restaurarla al arrancar nuevamente:

;; Colocar a cero [0] para desactivar:

(desktop-save-mode 1)

;; Colocar el tipo de sistema

(defun insert-system-type()

v (interactive)

(insert (format "%s" system-type)))

;; Colocar el nombre del sistema

(defun insert-system-name()

(interactive)

(insert (format "%s" system-name)))

;; Listar y posibilidad de abrir un buffer cerrado anteriormente

(require 'recentf)

34.-

Uso de algunos paquetes:

lorem-ipsum.- Coloca sentencias o párrafos en un archivo de texto:

C-u 10 M-x lorem-ipsum-insert-paragraphs (Insertar 10 párrafos)

screenshot.- Capturas de pantalla:

M-x screenshot (Pregunta nombre para la captura y scheme (con TAB muestra opciones). Al pulsar C-c C-c el puntero del ratón se convierte en una cruz para seleccionar la zona)

memory-usage.- Muestra estadistica de la memoria usada por emacs

M-x memory-usage


Volver al índice