emacs + YASnippet

Estuve buscando por todas partes un .el que, cada vez que escribiera el principio de un tag, este plugin autocompletara el final del tag, y pusiera mi cursor al medio.

Al final lo encontré en la forma de una herramienta mucho más completa, que no solo funciona con tags, sino con  C, C++, C#, Perl, Python, Ruby, SQL, LaTeX, HTML, CSS y más~, dejaré aquí las instrucciones para instalarlo… si todo lo que dije aquí no funciona, o si quieres aprender más sobre YASnippet y cómo añadirle la opción popup, no olvides ver los enlazes en la última sección “fuente”…

¿Cómo? :D

En realidad, es bastante fácil ~_^

Descarga del paquete

Puedes descargar un .zip de esta dirección: https://github.com/capitaomorte/yasnippet/archive/master.zip y luego descomprimirlo en tu ~/.emacs.d/plugins/ (si la carpeta plugins no existe, créala)

También puedes clonar el repositorio en tu ~/.emacs.d/plugins con un


 $ cd ~/.emacs.d/plugins/
 $ git clone https://github.com/capitaomorte/yasnippet.git
 $ cp -r ~/.emacs.d/plugins/yasnippet/snippets ~/.emacs.d/plugins/

Instalación

Luego, solo añades éstas líneas a tu .emacs:

;;YASnippet
(add-to-list 'load-path "~/.emacs.d/plugins/yasnippet") (require 'yasnippet)
(yas-global-mode 1)

;;popup on YASnippet
(require 'popup)
(require 'yasnippet)

;; add some shotcuts in popup menu mode
(define-key popup-menu-keymap (kbd "M-n") 'popup-next)
(define-key popup-menu-keymap (kbd "TAB") 'popup-next)
(define-key popup-menu-keymap (kbd "<tab>") 'popup-next)
(define-key popup-menu-keymap (kbd "<backtab>") 'popup-previous)
(define-key popup-menu-keymap (kbd "M-p") 'popup-previous)

(defun yas/popup-isearch-prompt (prompt choices &optional display-fn)
(when (featurep 'popup)
(popup-menu*
(mapcar
(lambda (choice)
(popup-make-item
(or (and display-fn (funcall display-fn choice))
choice)
:value choice))
choices)
:prompt prompt
;; start isearch mode immediately
:isearch t
)))

(setq yas/prompt-functions '(yas/popup-isearch-prompt yas/no-prompt))

y listo · w ·

Uso…

para usarlo… tienes que escribir una “palabra clave” y luego presionar TAB. Por ejemplo, crea un archivo .html y escribe “div”, luego, presiona tab y selecciona el esqueleto que quieras usar :D

O… entra a un archivo .cpp, escribe “main” y presiona TAB…

Para ver cuáles son palabras clave disponibles, puedes revisar el menú YASnippet (dentro de emacs, la barra superior), y en la primera parte del menú (antes de la primera división de “——————-“) puedes ver *-mode >, y cuando pongas tu cursor sobre eso, aparecerán todos los “snippets” disponibles para el modo de edición en el que estás, y a la derecha de cada uno, la palabra clave que debes insertar, seguido de un “=>”.

Si algo falla, o si quieres aprender más sobre este plugin, te recomiendo estos links:

https://github.com/capitaomorte/yasnippet <— Github de YASnippet
http://iany.me/2012/03/use-popup-isearch-for-yasnippet-prompt/ <— explicación de popups para YASnippet

(Migración de Tumblr a WordPress, fecha original: 2013-09-01)

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s