Emacs Doom Capítulo 3: Buffers, Ventanas y Navegación
Buffers en Emacs
Emacs, más allá de editor de texto, es (si la usuaria permite esta redefinición) una interfaz orientada a texto que además es programable. Este cambio en la perecepción de ¿Qué es Emacs? permite a las usuarias comprender el ¿Por qué? hay términos cuya definición cambia en Emacs.
Tal es el caso de los buffers y las ventanas que pueden confundir a las usuarias novicias en Emacs, ya que tradicionalmente llamamos ventana a la interfaz del programa que estamos corriendo; mientras en Emacs este concepto aplica a nuevos cuadros (o frames) abiertos dentro del programa. Para abrir una “nueva” ventana se debe presionar C-x 3
para dividir la ventana verticalmente (SPC w v
en EViL) o si se quiere divir de manera horizontal se debe presionar
C-x 2
(SPC w s
en EViL). En el caso de los buffers, estos se refieren a la interfaz de todo aquello que tiene nombre o dicho con otras palabras: cuando se abre un archivo, estoy editando un buffer, pero lo mismo se puede decir en el caso de dired o de la terminal eshell.
Navegación en Emacs
Entre buffers
Utilizando la redefinición anterior, la navegación en Emacs se hace mucho más fluida ya que considera toda aquella interfaz de texto abierta como un buffer (que puede a su vez ser un espacio de trabajo u otro tipo). Para cambiar entre estos buffers basta con presionar C-x b
en Emacs (SPC b B
en EViL) y se mostrará una lista de los buffers a la que nos podemos mover; y debido a que son todo aquello que tiene nombre, la usuaria puede escribir el nombre (o alguna parte del mismo) para encontrar el buffer deseado.
Esto también es aplicable al contexto de un proyecto en que se esté trabajando con projectile. Si la usuaria ya se encuentra en un archivo que está editando, pero quiere acceder a otro, lo puede hacer con C-x C-f
en Emacs (SPC SPC
con EViL siempre y cuando se haya abierto anteriormente el archivo), esto le permitirá buscar todos los archivos que integran el proyecto (y de ser necesario, buscar archivos en otros proyectos).
Entre ventanas
Cuando las usuarias acostumbran tener varias ventanas abiertas, navegar entre ellas se puede hacer con el atajo C-x o
que marcará cada ventana con una letra diferente para así moverse a ella. Pero muchas veces este atajo resulta algo tosco, por lo que usar C-w w
que irá circulando entre las ventanas abiertas pero podría tardar tiempo demás; por lo que utilizar C-w (teclas de movimiento de Vi)
en Emacs (SPC w (teclas de movimiento de Vi)
con EViL) es lo que permite
un mayor control de los movimientos de selección para ventanas.
Las ventanas se cierran mediante el atajo C-w c
en Emacs (SPC w c
en EViL), pero además la usuaria podría variar el tamaño de las ventanas utilizando C-w <
o C-w >
para reducir o ampliar el ancho de la ventana (SPC w <
o SPC w >
con EViL); pero si se quiere igualar el ancho, basta con presionar C-w =
(SPC w =
en EViL). Esto también se puede aplicar para ventanas divididas horizontalmente, usando C-w +
para aumentar el alto (SPC w +
) o C-w -
para disminuirlo (SPC w -
).
Notas de interés
Si bien este capítulo fue algo más abstracto en cuanto a su primera sección, espero que el control de navegación en Emacs le pueda servir a la lectora para introducirse con mayor profundidad en esta interfaz orientada a texto que es ajustable a las necesidades de quien lo ocupa (un pilar fundamental de las 4 libertades de software según el autor de estas entradas).