Código plegable en Emacs
A veces quiero doblar un bloque de texto. En Vim tienes un plegado fácil sin pelusa. Sin agregar caracteres especiales como "marcadores" o expresiones regulares específicas {{{
. Me gustaría seleccionar una región y doblarla, sin alterar la estructura.
Al mirar alrededor, parece que ya había preguntas sobre el plegado de código en Emacs. Alguien dijo que "no había una solución perfecta". Por ejemplo, creé un clip de codefolding simple en Vim:
Vim liso plegable
+ Bastante simple, seleccione una región y dóblela.
+ Es persistente. Cuando matas el búfer / cierras Vim. Y vuelva a abrir el archivo, los pliegues siguen ahí.
+ Obtiene una barra de resaltado, para ver fácilmente lo que está doblado.
Hay muchas otras configuraciones de plegado para Vim. Estoy feliz con Emacs, pero esto es algo que extraño. Otras alternativas que probé, por ejemplo HideShow:
Ocultar mostrar
La alternativa del mal con hide-show minor mode
. Lo encontré inutilizable:
- No puedo seleccionar una región y plegarla. Se pliega en bloques de código.
- No hay barra de altura o algo así, para atenderlo está doblado. Podrías perderte fácilmente.
- No es persistente. Si vuelve a abrir el archivo, los pliegues desaparecen.
Hay otro paquete, doble esto :
Doblar esto
- Es una linda alternativa. Sin embargo, se mete con la sangría, porque el texto debajo del pliegue se coloca al lado del pliegue ... (?).
- Es capaz de seleccionar visualmente la región y doblarla. Pero rompe la indendación, por lo que la visión general se complica. No muy a mano.
- No hay barra de altura o algo así, para atenderlo está plegado. Podrías perderte fácilmente.
¿Cual es el problema?
Me gustaría replicar cómo Vim se dobla. Pero cuando busqué, parece que es muy difícil hacerlo en Emacs. Entonces, me pregunto si hay algo en emacs o su arquitectura que hace que sea difícil replicar esto. Cuales son los limites?
fuente
Respuestas:
Probar
vimish-fold
.Caracteristicas
baterías incluidas: active el modo menor, conecte un par de comandos y todo funcionará;
funciona en las regiones que seleccione;
es persistente: cuando cierra el archivo, sus pliegues no desaparecen;
además de ser persistente, se escala bien, puede trabajar en cientos de archivos con muchos pliegues sin efectos adversos;
es obvio qué partes del texto están dobladas;
no rompe la sangría o algo así;
puede replegar solo pliegues desplegados (oh, mi);
Para los fanáticos del
avy
paquete: ¡puede usaravy
para doblar texto con un número mínimo de pulsaciones de teclas!Uso
Cree enlaces para algunas / todas estas funciones:
vimish-fold
- plegado básico de la región seleccionada;vimish-fold-unfold
- realmente no necesita vincular esto, solo use C-gcuando el punto se coloca en el encabezado que representa el texto doblado;vimish-fold-unfold-all
- sin embargo, esto puede ser útil;vimish-fold-refold
- Sí, puedes doblarlo;vimish-fold-avy
- ¡usaavy
para doblar tu texto!Puede activar
vimish-fold-mode
selectivamente los modos en los que desea tener un plegado persistente, o simplemente activarlo en todas partes:fuente
menu v f
→vimish-fold
,menu v a
→vimish-fold-avy
,menu v u
→vimish-fold-unfold-all
,menu v v
→vimish-fold-refold
. La mayoría de mis combinaciones de teclas son así, esta es mi configuración .