2008-09-14 11 views
30

Particularmente, ¿cuál es el mejor paquete de fragmentos que hay?¿Cuál es la mejor instalación de plantilla de código para Emacs?

Características:

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

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

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

Escribir un código tan común es una gran cantidad de datos. Quiero invocar una plantilla de código o un 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 _.

Respuesta

23

TextMate's snippets son la combinación más cercana pero no es una solución multiplataforma y no para Emacs.

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

EDIT: Publicada la respuesta aquí para permitir la votación sobre yasnippet.

3

me gustaría añadir mi voto para tempo snippets ... fácil de instalar, de gran alcance (se puede ejecutar elisp arbitraria en su plantilla - por lo que puede downcase cosas, los nombres de archivo de búsqueda & clases, contar cosas, etc), ajuste el sangría, se integran con las abreviaturas ... yo lo uso mucho;)

2

que votar por http://cedet.sourceforge.net/srecode.shtml

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

También forma parte de la distribución de gran tamaño compatible con CEDET (que se incorporó a Emacs para la serie de versiones 24.x).

ACTUALIZACIÓNhttps://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 la plantilla) porque no puede poner varias plantillas en un solo archivo y tiene problemas con los juegos de caracteres nacionales ...

Cuestiones relacionadas