usar salir como emacs template-engine code-snippets

salir - como usar emacs



¿Cuál es la mejor instalación de plantilla de código para Emacs? (5)

Particularmente, ¿cuál es el mejor paquete de fragmentos que hay?

caracteristicas:

  • fácil de definir nuevos fragmentos (texto sin formato, entrada personalizada con valores predeterminados)
  • navegación simple entre posiciones predefinidas en el fragmento
  • inserción múltiple de la misma entrada personalizada
  • acepta texto seleccionado actualmente como una entrada personalizada
  • multiplataforma (Windows, Linux)
  • expresiones evaluadas dinámicamente (código incrustado) escritas en un lenguaje de programación conciso (se prefieren Perl, Python, Ruby)
  • muy bien coexiste con otros paquetes en Emacs

Ejemplo de plantilla de código, un bucle simple for C:

for (int i = 0; i < %N%; ++i) { _ }

Es mucho tipeo para un código tan común. Quiero invocar una plantilla de código o fragmento que inserta ese código repetitivo para mí. Además, se detiene (en TAB u otra pulsación de tecla) en %N% (mi entrada lo reemplaza) y la posición final del cursor es _ .


Agregaría mi voto para los fragmentos de tempo ... fácil de configurar, potente (puede ejecutar elisp arbitrario en su plantilla, para poder descifrar cosas, buscar nombres de archivos y clases, contar cosas, etc.), configurar la sangría, integrar con abreviaturas ... Lo uso mucho;)




Yo voto por http://cedet.sourceforge.net/srecode.shtml

Tiene una sintaxis muy limpia y tiene acceso al entorno de código a través de Semantic .

También es parte de la distribución CEDET grande y bien soportada (que se incorporó a Emacs para la serie de versiones 24.x).

ACTUALIZAR https://github.com/capitaomorte/yasnippet también es un potente motor de plantillas. Pero utiliza un feo esquema de nomenclatura de archivos (su nombre de archivo === nombre de plantilla) porque no puede poner varias plantillas en un solo archivo y tiene problemas con los juegos de caracteres nacionales ...


Los fragmentos de TextMate son la coincidencia más cercana, pero no es una solución multiplataforma y no para Emacs.

La segunda cosa más cercana es yasnippet (el screencast muestra las capacidades principales). Pero interfiere con hippie-expand paquete hippie-expand en mi configuración y el lenguaje incrustado es EmacsLisp con el que no me siento cómodo con .emacs externos.

EDITAR : yasnippet mi respuesta aquí para permitir votar en yasnippet .