emacs folding

¿Por qué no hay código plegable en emacs?



folding (6)

Hay varias preguntas sobre SO sobre cómo hacer que el código se doble en emacs, sin tener que agregar ningún carácter especial como "marcadores" en los comentarios, por ejemplo. Alguien dijo que no había "ninguna solución perfecta".
Parece que podría hacerse analizando la fuente del programa que se está escribiendo y buscar paréntesis o corchetes, o hacerlo en base a una sangría. También puede usar una combinación de scripts que usan diferentes métodos.
Entonces, ¿por qué se acepta comúnmente que no hay una forma "perfecta" y directa de plegar el código en emac? ¿Hay algo en emacs o su arquitectura que dificulta la programación? Si fuera fácil, después de tantos años de gente inteligente usando emacs, pensarías que alguien lo habría escrito.


Debes jugar con Hideshow ( hs-minor-mode ) combinado con fold-dwim.el . Hace exactamente lo que sugirió: busca llaves / paréntesis coincidentes, y puede configurarse para que retroceda en la sangría.

Existe una solución de plegado robusta para la mayoría de los idiomas comunes, y si no la hay, todos los paquetes plegables son altamente personalizables. De hecho, el único inconveniente es la proliferación de métodos de plegado ( fold-dwim ayuda bastante con eso); Solía ​​pensar que, como nadie podía señalarme una solución definitiva, doblar era difícil o imposible; de ​​hecho, lo contrario es cierto. Solo tienes que experimentar un poco para ver qué funciona mejor para ti.

He usado folding.el (por ejemplo, para agrupar cosas en mi .emacs ), outline-minor-mode , y ahora Hideshow. Existe la posibilidad de que ninguno de ellos funcione exactamente de la forma que desea sacarlo de la caja (p. Ej., Es posible que necesite configurar una expresión regular de contorno o definir las marcas de plegado para el folding.el ), pero resulta ser fácil. Las combinaciones de teclas predeterminadas pueden ser algo barrocas, pero esto se fold-dwim con fold-dwim y / o hideshow-org (altamente recomendado para Hideshow, consulte la página de Emacswiki hideshow; también puede imitar el hideshow-org para otros modos de plegado con algunos rápido y sucio elisp y fold-dwim ). Una vez que descubra su configuración preferida, simplemente enciéndala automáticamente a través de enlaces o variables locales de búfer, y observe cómo se pliega su código :) (vea más abajo, observe los + '''' '''' en el margen).

texto alt http://img198.imageshack.us/img198/4029/screenshot1oc.png


He estado usando el modo plegable desde hace bastante tiempo. Con la plantilla de inserción automática y abrevs, me funciona bastante bien para algunos buenos bloques de código.

Ser capaz de producir el búfer plegado (para imprimir / enviar por correo electrónico) siempre ha sido un deseo mío. Algunas de mis etiquetas plegables son para ocultación segura / contraseña.


No necesita nada adicional, solo habilite el modo de esquema menor para los tipos de archivos que desea plegar.


Pero, de hecho, hay varias soluciones para Emacs; He enumerado algunos de ellos (los que he encontrado) en http://en.wikipedia.org/w/index.php?title=Code_folding&oldid=375300945#cite_note-2 .

Sin embargo, hay cosas que me faltan: en algunos casos, me gustaría combinar varios mecanismos: por ejemplo, para rebajas, me gustaría usar el plegado basado en contornos (para secciones) y el plegado basado en sangría (para citas, bloques de código, etc.) - para no molestarnos en implementar un analizador completo para el descuento.

Aquí están:

Plegado basado en fichas en Emacs

El plegado basado en token en Emacs se ve afectado por el modo menor de plegado .

Pliegue basado en sangría en Emacs

Se puede usar la función de set-selective-display en Emacs para ocultar líneas según el nivel de sangría, como se sugiere en la nota de plegado de código universal .

Sintaxis dependiente del plegado en Emacs.

El plegado dependiente de la sintaxis en Emacs es compatible con:

Varios mecanismos de plegado están unificados por la interfaz fold-dwim.el .

Véase también http://www.emacswiki.org/emacs/CategoryHideStuff .

Plegado de regiones seleccionadas por el usuario en Emacs

El plegamiento de las regiones seleccionadas por el usuario en Emacs se implementa mediante el comando hide-region-hide .


Sí. Finalmente, el código de plegado está allí en emacs. Intente yafolding presente en la biblioteca de paquetes melpa.org.


Usted debe mirar en CEDET. El código se pliega muy bien, y muchas otras características extravagantes que probablemente esté buscando si está cambiando de un IDE a Emacs.

http://cedet.sourceforge.net/

Específicamente, busque ''modo-plegado-etiqueta-global-semántico''