Otra configuración más de GNU Emacs
¿Cansado/a de ir saltando entre terminales, programas varios y editores de texto?
¿Quizá te interesa escribir un documento? ¿un texto profesional?Emacs ofrece una interfaz cohesionada para todo ello.
Antes de nada debes *Instalar Emacs. Si ya lo has hecho recomiento que hagas el tutorial interactivo que incluye Emacs. Para iniciarlo pulsa C-h t
, es decir, “Control+h” seguido de “t”.
Otra opción que puede interesar si aún no dominas las teclas (o no tienes interés en hacerlo) es el modo CUA (Common User Acess). Puedes activarlo en el menú pulsando Options --> Cut/Paste with C-x/C-c/C-v (CUA Mode)
, o bien pulsando M-x RET cua-mode RET
(Alt+x, Enter, cua-mode, Enter) si no tienes interfaz gráfica.
Si quieres cambiar el tema de Emacs puedes usar el menú gráfico (Options --> Customize Emacs --> Custom Themes
) o bien pulsando M-x RET load-theme
y buscando un tema de tu agrado entre los que se incluyen.
Si te interesa el porqué Emacs es tan bueno, aquí tienes dos ejemplos que han convencido a muchos: Org-mode y Magit.
Comando | Teclas | Descripción |
---|---|---|
execute-extended-command | M-x | Ejecutar comando por nombre |
find-file | C-x C-f | Buscar y abrir un fichero |
save-buffer | C-x C-s | Guardar el búfer actual |
save-some-buffers | C-x s | Guardar todos los búfers |
write-file | C-x C-w | Guardar búfer como… |
save-buffers-kill-terminal | C-x C-c | Salir de Emacs |
switch-to-buffer | C-x b | Cambiar de búfer |
undo | C-x u | Deshacer el último cambio |
keyboard-quit | C-g | Cancelar comando actual |
kill-region | C-w | Borrar y copiar selección |
yank | C-y | Pegar último texto copiado |
Si ya lo has instalado, puedes consultar *Por dónde empezar. Si no, probablemente puedas encontrar Emacs en los repositorios de la distribución de Linux que uses con el nombre de emacs
o emacs-gtk
(versión gráfica). En caso de Windows o MacOS, ver la información en la página web oficial de GNU.
Puede que estas versiones precompiladas no incluyan algunas características como compilación nativa de emacs lisp, treesitter, u optimizaciones propias del compilador. Si te interesa tenerlas, sigue leyendo.
Si no ha habido suerte con los binarios o prefieres ajustar a tu gusto las características de Emacs, puedes compilarlo desde las fuentes. Para hacerlo, necesitarás los siguientes paquetes (en Debian y derivados, consulta qué nombres utiliza el gestor de paquetes de tu distribución):
- Esenciales:
build-essential texinfo libgnutls28-dev libncurses-dev libgtk-3-dev libtree-sitter-dev libmagick++-dev
- Formatos de imagen:
libjpeg-dev libpng-dev libtiff5-dev libgif-dev libxpm-dev librsvg2-dev
- Para la compilación:
gcc-12 g++-12 libgccjit0 libgccjit-12-dev autoconf
- JSON rápido:
libjansson4 libjansson-dev
- Esenciales:
base-devel texinfo gnutls-devel ncurses-devel gtk+3-devel tree-sitter-devel libmagick-devel
- Formatos de imagen:
libjpeg-turbo-devel libpng-devel tiff-devel giflib-devel libXpm-devel librsvg-devel
- Para la compilación:
gcc-13 libgccjit libgccjit-devel autoconf
- JSON rápido:
jansson jansson-devel
[AVISO] En Void Linux se usa la versión 13 de GCC, por lo que se debe cambiar el nombre de los programas en el paso de compilación (cuando se definen las variables
CC
yCXX
) a/usr/bin/gcc
y/usr/bin/g++
, respectivamente.
Una vez instaladas las dependencias hay que obtener el código fuente:
git clone --depth 1 --branch emacs-29 git://git.savannah.gnu.org/emacs.git
Entra a la carpeta donde se ha clonado el repositorio. Ahora procede con la configuración previa a la compilación (para más información sobre las posibles funcionalidades con las que se compila Emacs puedes ejecutar ./configure --help
y leer sobre ellas. Añade o elimina las que quieras):
export CC=/usr/bin/gcc-12 CXX=/usr/bin/g++-12
./autogen.sh
./configure --with-native-compilation --with-x-toolkit=gtk3 --with-tree-sitter --with-wide-int --with-json --with-gnutls --with-mailutils --without-pop --with-cairo --with-imagemagick
Por último, compilamos e instalamos (para más info sobre las CFLAGS usadas ver el manual de GCC, man gcc
):
CFLAGS="-O2 -pipe -mtune=native -march=native -fomit-frame-pointer"
make -j$(nproc --ignore=2) NATIVE_FULL_AOT=1
sudo make install
¡Y ya está! Ahora puedes ejecutar make clean
para borrar los archivos intermedios de compilación para liberar algo de espacio, o sudo make uninstall
cuando decidas dejar de usar Emacs.
- The original magic Emacs garbage collection hack, Andrea Corallo.
- Emacs From Scratch, David Wilson (aka Systemcrafters)
- My packages and/or custom code for GNU Emacs, Protesilaos Stavrou.
- Configuring Emacs, Derek Taylor (aka DistroTube)
- A use-package declaration for simplifying your .emacs, John Wiegley.
- Awesome Emacs, Emacs community @ Taiwan.
- (More) Batteries included with Emacs, Karthinks
- The Ultimate Collection of Emacs Resources, Bozhidar Batsov
- Build GNU Emacs from source., Abidán Brito
- My Emacs Configuration, Howard Abrams