IDE Emacs

Table of Contents

emacs.gif

1. Programar con Emacs

1.1. Editar archivos desde la terminal de linux

Si estamos apurados y queremos ver ó modificar un archivo sin entorno gráfico ejecutamos el ide pasando el parámetro -nw

emacs -nw /etc/hosts # abrimos el archivo hosts

Observación: Si queremos evitar pasarle el parámetro, podemos crear un alias en linux

1.2. Atajos

Atajo Descripción
C Se refiere a la tecla Ctrl
X Se refiere a la tecla Alt
SPC Se refiere a la tecla Espacio

1.3. Acciones

Holy mode Evil Mode Descripción
C-x C-c SPC-q-q Salir de Emacs
M-x dired   Listar directorio
M-x shell Spc-' Abre la terminal
M-x list-packages   Lista todos los paquetes

1.4. Comandos para Edición

Holy Mode Evil Mode Descripción
C-w d Cortar texto
X-w y Copiar texto seleccionado
  Y Copiar desde el cursor hasta final de linea
C-y p Pegar texto despues del cursor
  P Pegar texto antes del cursor
C-w u u Deshacer cambio
Shift < Arrow > v < h/j/k/l > Seleccionar texto
C-x h   Seleccionar todo el texto
C-x ESC Cancelar acción
C-x C-s SPC f s Guardar archivo
C-x C-v   Actualizar buffer
  o Insertar linea debajo del cursor
C-k   Borra desde el puntero hasta el final de linea
M-k   Elimina texto hasta final del texto, parrafos
  dd Elimina linea
  D Elimina desde el principio al final de linea
  x Elimina caracter despues del cursor
  X Elimina caracter antes del cursor

1.5. Comandos de Desplazamiento

Holy Mode Evil Mode Descripción
C-n j Mover cursor hacia abajo
C-p k Mover cursor hacia arriba
C-b h Mover cursor hacia la izquierda (backward)
C-f l Mover cursor hacia la derecha (foward)
M-AvPag   Scrollear otra ventana, sin mover el cursor
M-RePag   Scrollear otra ventana, sin mover el cursor
     
     
C-s   Busqueda de texto, hacia adelante
C-r   Busqueda de texto, hacia atras
  /[patron] RET Busqueda de texto hacia adelante (n para avanzar, N para retroceder)
  ?[patron] RET Busqueda de texto hacia atras (n para avanzar, N para retroceder)
     
M-g < n > gg Ir a la linea n (Ej. 20gg va a la linea 20)
C-g   Finaliza búsqueda
C-u 8 *   Escribe el asterisco 8 veces
M-Delback   Borra por palabras
C-k   Borra desde el puntero hasta el final de linea
M-k   Elimina texto hasta final del texto, parrafos
C-v   Avanzar sig. Página
M-v   Retroceder, anterior página
M-<   Retroceder por palabras
M->   Avanzar por palabras
C-a ^ Principio de linea
C-e $ Final de linea

1.6. Control de Buffers

Comando Descripción
M-x eval-buffer Cargar configuraciones sin cerrar emacs
C-x 1 Cierras las otras ventanas que no es la actual
C-x 2 Divide la ventana en 2 (horizontal)
C-x 3 Divide la ventana en 2 (vertical)
C-x o Mueve el cursor a la otra ventana
C-x b Cambiar a otro buffer
C-x C-b Listar buffers
C-x k Cerrar ventana (no emacs)

2. Otros

2.1. Modificar archivos con permisos root

Se procede de igual manera que cuando se abren los archivos, con la excepción que se agrega /sudo::/ antes de la ruta de archivo

Por tanto deberiamos realizar lo siguiente

C-x C-f /sudo::/ruta/archivo.extension

2.2. Acciones sobre el listado de directorios

Luego de haber lanzar M-x dired se pueden ejecutar acciones estando dentro del listado

Acción Descripción
d Seleccionar archivo para aplicarle una acción
x Ejecutar acción
g Actualizar cambios
C-x C-f Crear un archivo
C-x C-q Renombrar archivos (Finalizar con C-c C-c)

2.3. Referencias

2.3.1. Referencias Web Extraoficiales

3. Configuración personalizada

3.1. Configurar la indentación del código

; Set Indentation (tabs)
; https://www.gnu.org/software/emacs/manual/html_node/efaq/Changing-the-length-of-a-Tab.html
; https://www.emacswiki.org/emacs/IndentationBasics
(setq-default tab-width 2)

3.2. Autoindentación

;; https://www.emacswiki.org/emacs/AutoIndentation
(add-hook 'lisp-mode-hook '(lambda ()
  (local-set-key (kbd "RET") 'newline-and-indent)))

4. Información Adicional

4.1. Cambiar de buffer

Usando el comando C+x b Puede continuar usando C-x o para cambiar entre las ventanas. Cada ventana tiene su propia posición del cursor, pero únicamente una ventana actual muestra el cursor. Todos los comandos de edición comunes se aplican a la ventana en que está el cursor. Llamaremos esto la "ventana seleccionada".

El comando C-M-v es muy útil cuando está editando un texto en una ventana y usando la otra ventana como referencia. Puede mantener el cursor siempre en la ventana donde está editando, y avanzar a la otra ventana secuencialmente con C-M-v

4.2. Guardar

“Esto copia el texto dentro de Emacs al archivo. La primera vez que haga esto, Emacs renombrará el archivo original con un nuevo nombre para que éste no se pierda. El nuevo nombre se hace agregando ~ al final del nombre del archivo original.

Cuando guardar haya terminado, Emacs mostrará el nombre del archivo escrito. Deberá guardar frecuentemente, para que no pierda mucho trabajo si el sistema falla.” Puede encontrar un archivo existente, para verlo o editarlo.

También puede hacerlo con un archivo que no exista. Ésta es la forma de crear un archivo en Emacs: encuentre el archivo, que comenzará vacío, luego comience a insertar el texto para ese archivo.

Cuando invoque "guardar" el archivo, Emacs creará realmente el archivo con el texto que ha insertado. De ahí en adelante, puede considerarse estar editando un archivo existente.

4.3. Buffers

CUALQUIER texto que vea en una ventana de Emacs siempre es parte de un buffer. Algunos buffers no corresponden a un archivo.

Por ejemplo, el buffer llamado "Buffer List" no tiene ningún archivo. Es el buffer que contiene la lista de buffers que ha creado con C-x C-b

El buffer llamado Messages tampoco tiene un archivo correspondiente; contiene los mensajes que han aparecido en la línea de abajo durante su sesión de Emacs.

4.4. Auto guardado

Si ha hecho cambios en un archivo, pero no los ha guardado, éstos podrían perderse si su computadora falla. Para protegerlo de esto, Emacs periódicamente escribe un archivo "auto guardado" para cada archivo que está editando.

El nombre del archivo auto guardado tiene un # al principio y al final también. Por ejemplo, si su archivo se llama hola.c, su archivo auto guardado será #hola.c#

Cuando guarda por la vía normal, Emacs borra su archivo de auto guardado. Si la computadora falla, puede recuperar su edición de auto guardado encontrando el archivo normal (el archivo que estuvo editando, no el archivo de auto guardar) y entonces si presionamos M-x recover file<Return>.

Cuando le pregunte por la confirmación, presionamos yes<Return> para ir y recuperar la información del auto guardado.

5. Referencias

6. Referencias pendientes a revisar

Author: jelou

Created: 2021-10-18 lun 19:20

Validate