0
(0)

Emacs es una herramienta maravillosa y con los paquetes de terceros adecuados puede crear su propio entorno dentro de ella. Las funciones como la generación de ventanas y la emulación de terminal son solo algunas de las partes de Emacs que están ocultas para el usuario ocasional. Este artículo tiene como objetivo arrojar luz sobre algunos de ellos para permitirle aprovechar al máximo su instalación de Emacs.

1. Generación de una nueva ventana

Una de las funciones más útiles de Emacs es la posibilidad de dividir una ventana. Usando Ctrl + x, 2 o Ctrl + x, 3, puede duplicar fácilmente su búfer actual, ya sea horizontal o verticalmente. Esto puede ser especialmente útil si está trabajando en diferentes partes del mismo archivo.

5 Emacs Hacks 02 Pantalla dividida

Sabiendo eso, también puede usar este paradigma Ctrl + x para dividir una ventana para un nuevo archivo. De forma predeterminada, los comandos normales de Emacs toman el control de la ventana en la que se encuentra actualmente. Por ejemplo, si presiona Ctrl + x, f y abre un archivo, ese archivo ocupará toda la pantalla.

Sin embargo, al presionar Ctrl + x, 4 seguido de f. Puede indicarle a Emacs que abra ese archivo en un búfer separado. Esto puede ser increíblemente útil si desea verificar un archivo nuevo pero también desea conservar el búfer en el que está trabajando actualmente.

5 Emacs Hacks 18 Cambiar a nueva ventana

Además, también puede usar esto para cambiar a un búfer actualmente abierto en su sesión de Emacs. Para hacerlo, puede presionar Ctrl + x, 4 y luego b para indicarle a Emacs que abra un búfer de comandos. Esto, a su vez, enumera todos los búfer abiertos actualmente en su sesión.

5 Emacs Hacks 03 Cambiar a ventana de búfer

2. Emuladores de terminales

Por defecto, Emacs viene con dos shells incorporados. El primero es un intérprete de comandos nativo escrito en Emacs Lisp llamado “eshell”. Es un shell de solo texto que puede usar para ejecutar comandos UNIX directamente desde Emacs.

Al ser solo texto, también puede modificar cualquier salida de comando en eshell de manera similar a cualquier búfer de texto de Emacs. Esto puede ser útil si está en una sesión de depuración y desea tomar notas entre los errores de compilación.

5 Hacks de Emacs 05 Eshell

Debido a la naturaleza de eshell, no puede ejecutar ningún programa complejo de Terminal UI (TUI). Para eso, Emacs también se envía con el término, un Terminal VT100 emulador

Similar a una terminal Linux normal, term emula todas las funciones de un VT100, incluidas sus secuencias de escape. Esto significa que puede ejecutar cualquier aplicación TUI en Emacs. Por ejemplo, actualmente estoy ejecutando vim dentro de Emacs hasta el término.

5 trucos de Emacs 06 Vim dentro de Emacs

Con eso, puede ejecutar eshell y term presionando Alt + x. Esto abrirá el búfer de comandos de Emacs. Desde allí, puede escribir eshell para cargar el terminal de texto o puede escribir term para cargar el emulador VT100.

Una cosa importante a tener en cuenta es que el término también tiene un modo limitado de «solo texto» al que puede acceder presionando Control + c, j.

5 Emacs Hacks 07 Modo de línea de terminal 1

Esto cambiará la sesión del término actual a «modo de línea», donde puede copiar y pegar fácilmente comandos hacia y desde el símbolo del sistema. Desde allí, puede volver a un modo de terminal normal presionando Ctrl + c, k.

3. Acceso a archivos remotos en Emacs

Otro brillante programa integrado en Emacs es el Acceso transparente a archivos remotos, protocolo múltiple (VAGABUNDO). Este es un programa simple que le permite acceder sin problemas a cualquier archivo a través de cualquier protocolo dentro de Emacs.

5 Emacs Hacks 08 Vagabundo de muestra

Funciona mediante el uso de programas auxiliares como ssh, rlogin y su para conectar al usuario a una computadora remota. A partir de ahí, TRAMP monta los archivos de la computadora remota en la máquina local del usuario. Eso, a su vez, hace que esos archivos parezcan locales.

Sabiendo eso, puede usar TRAMP presionando Ctrl + x, f y Ctrl + Retroceso para borrar el aviso del archivo. A partir de ahí, debe escribir un formato de ruta específico para decirle a Emacs que use TRAMP:

/protocol:address:/path/to/your/file

Por ejemplo, escribí la siguiente ruta TRAMP para conectarme a mi servidor de archivos a través de SSH:

/sshx:myfileserver.net:/home/ramces/documents/myfile.txt

También puede usar TRAMP para editar archivos privilegiados dentro de Emacs. Esto es muy útil si necesita editar rápidamente los archivos del sistema y no desea abrir un editor privilegiado. Hacerlo de esta manera también reduce el riesgo de problemas de seguridad ya que TRAMP crea un espacio aislado para el archivo privilegiado.

Para acceder a un archivo privilegiado a través de TRAMP, debe usar su como su protocolo:

/su::/etc/yggdrasil.conf

En este ejemplo, estaba editando mi archivo de configuración de Yggdrasil a través de TRAMP. Dado que solo accedí al archivo localmente, no necesitaba proporcionar una dirección para su.

Una vez que presioné Enter, TRAMP me pidió mi contraseña de usuario. Después de eso, el archivo se cargó en un búfer de Emacs como si fuera solo un archivo sin privilegios.

5 Emacs Hacks 09 Archivo privilegiado en Emacs

El Emacs por defecto buscando función es relativamente torpe. Puede presionar Ctrl + S para buscar hacia adelante y Ctrl + R para buscar hacia atrás. Sin embargo, esta forma de búsqueda se limita estrictamente a la coincidencia de una cadena específica.

Esto significa que todo lo que escriba en el cuadro de búsqueda coincidirá exactamente, incluidos los espacios. En la mayoría de los casos, esto no es un problema, ya que la mayoría de las búsquedas de texto solo consisten en palabras sueltas y frases cortas.

5 Emacs Hacks 10 Ejemplo de búsqueda

A pesar de eso, puede haber instancias en las que desee que Emacs realice una búsqueda aproximada. Este es un tipo de búsqueda de texto que solo coincide con pequeñas partes de varias cadenas.

Por ejemplo, al usar la búsqueda predeterminada de Emacs, no es posible buscar la frase «hola mundo» simplemente proporcionando «he ld» en el cuadro de búsqueda.

5 Emacs Hacks 11 Ejemplo de búsqueda regular

Para que esto sea posible, deberá agregar el siguiente código Lisp a su archivo init.el:

(setq search-whitespace-regexp ".*")
(setq isearch-lax-whitespace t)
(setq isearch-regexp-lax-whitespace nil)
  • La primera función, search-whitespace-regexp reemplaza el carácter de espacio en blanco por cualquier carácter (.*) cuando se utiliza la búsqueda de texto.
  • La segunda función, isearch-lax-whitespace habilita varias coincidencias de espacios en blanco al buscar un solo espacio en blanco. Usar esto junto con la primera función le permite realizar una búsqueda aproximada.
  • Por último, la tercera función, isearch-regexp-lax-whitespace se asegura de que solo necesitaría usar un solo carácter de espacio en blanco para crear una búsqueda aproximada.

Sabiendo eso, ahora puede volver a cargar su cliente Emacs y probar si la búsqueda difusa funciona. En mi caso, pude buscar la frase “hola mundo” simplemente escribiendo “he ld”.

5 Emacs Hacks 12 Ejemplo de búsqueda difusa

5. Edición de su búfer Dired

Dirigido es el administrador de archivos predeterminado para Emacs. En esencia, le permite revisar fácilmente el sistema de archivos de su computadora y abrir cualquier archivo directamente en un búfer de Emacs. Puede acceder fácilmente a Dired presionando Ctrl + x, d o Ctrl + x, f.

5 Emacs Hacks 13 Dired Ejemplo

Sin embargo, uno de los principales problemas con Dired es que es complicado modificar cualquier archivo en su búfer. Por ejemplo, si desea cambiar el nombre de un archivo dentro de Dired, debe hacer dos cosas:

  • Primero, debe marcar el archivo que desea editar seleccionándolo y presionando M.
  • A partir de ahí, debe presionar Shift + R para alternar un cambio de nombre y proporcionar un nuevo nombre para su archivo.

5 Emacs Hacks 14 Normal Dired Renombrar

Si bien cambiar el nombre de un archivo de esta manera es suficiente para el uso básico, hacer esto para modificar varios archivos puede ser un desafío.

Para lidiar con eso, Emacs también viene con la capacidad de editar el búfer de Dired directamente como texto. Esto le permitirá no solo cambiar el nombre de varios archivos, sino también modificar sus bits de permiso.

Para hacer esto, puede presionar Ctrl + x, Ctrl + q. Esto habilitará el modo «Editable Dired». Desde aquí, ahora puede editar el búfer Dired y, una vez que lo guarde, esos cambios se aplicarán a sus archivos.

Por ejemplo, si desea cambiar el nombre de varios archivos, simplemente puede escribir sobre los nombres de los archivos actuales y escribir otros nuevos. Una vez hecho esto, simplemente presione Ctrl + C, Ctrl + C para guardar los cambios y se cambiará el nombre de esos archivos.

5 Emacs Hacks 15 Editable Dired

Cambio de permisos de archivos usando Dired

Como se discutió anteriormente, otra cosa que puede hacer en Editable Dired es actualizar la configuración de permisos de los archivos. Para hacerlo, deberá agregar la siguiente línea a su archivo init.el:

(setq wdired-allow-to-change-permissions t)

5 Hacks de Emacs 16 Init El Config

Una vez hecho esto, ahora puede editar los bits de permiso de los archivos directamente desde Editable Dired. Por ejemplo, considere el siguiente archivo:

-rw-r--r--  1 ramces ramces   8316 Mar 11 10:53 test.txt

La primera columna de texto indica que este archivo tiene permisos de lectura y escritura para mí (rw-). Además, solo tiene permisos de lectura para cualquier otra persona (r–r–).

5 Emacs Hacks 17 bits de permiso Dired

Para cambiar esto, seleccioné sobre esta columna de texto y presioné W en los otros bits para permitir que otras personas editen este archivo:

-rw-rw-rw-  1 ramces ramces   8316 Mar 11 10:53 test.txt

Por otro lado, para deshacer eso, puede presionar – a cualquier bit de permiso y borrará el permiso para ese campo:

-r--r--r--  1 ramces ramces   8316 Mar 11 10:53 test.txt

¡Eso es todo, ahora conoce 5 funciones ocultas en Emacs predeterminado que puede usar para mejorar su experiencia de edición!

Preguntas frecuentes

1. ¿Es posible crear una nueva ventana para otros paquetes de Emacs?

Tristemente no. El comando Ctrl + x, 4 solo funciona para abrir archivos nuevos similares a Ctrl + x, f y para abrir búferes similares a Ctrl + x, b.

Una forma de evitar esta limitación es abrir el paquete normalmente usando Alt + x. Desde allí, puede recuperar su búfer anterior presionando Ctrl + x, 4, b.

2. ¿Puedo usar un shell diferente para el emulador VT100?

¡Sí! Cuando ejecuta el comando de término usando Alt + x, Emacs le pedirá el shell que desea usar. De forma predeterminada, agregará el shell predeterminado para su sistema. Esto significa que si su shell predeterminado es bash, Emacs proporcionará «/bin/bash» en este indicador.

Para usar un shell diferente, debe reemplazar este valor con la ruta del shell que desea usar. Por ejemplo, si desea usar ksh en el término, debe escribir /bin/ksh cuando term le solicite el terminal que desea utilizar.

3. ¿Puedo deshacer mis cambios en el búfer de Dired?

Si y no. Puede deshacer todos los cambios que haya realizado en Editable Dired presionando Ctrl + c, ESC. Sin embargo, esto solo funcionará si aún no ha guardado los cambios en el disco.

Una vez que presione Ctrl + C, Ctrl + C, Emacs escribirá todos los cambios que haya realizado. Para entonces, la única forma de deshacerlos es editar manualmente los archivos nuevamente.

Credito de imagen: Unsplash

¿Le ha parecido útil este contenido?

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 0 / 5. Recuento de votos: 0

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.