{"id":66,"date":"2009-11-30T15:16:44","date_gmt":"2009-11-30T13:16:44","guid":{"rendered":"http:\/\/www.blackhats.es\/wordpress\/?p=66"},"modified":"2022-08-20T18:26:12","modified_gmt":"2022-08-20T16:26:12","slug":"yasnippet","status":"publish","type":"post","link":"https:\/\/www.blackhats.es\/wordpress\/?p=66","title":{"rendered":"Yasnippet"},"content":{"rendered":"<p><strong>Yasnippet <\/strong>es un sistema de plantillas (templates) para emacs. Dicho sistema permite escribir con abreviaturas y que \u00e9stas se expandan autom\u00e1ticamente en plantillas para las funciones. Los lenguajes soportados de momento son <strong>c, c++, c#, perl, python, ruby, SQL, LaTeX, HTML, CSS<\/strong>, etc&#8230; aunque siempre puedes importar tus propios templates.<\/p>\n<p>Para descargar yasnippet se puede realizar en <a href=\"http:\/\/yasnippet.googlecode.com\/\" target=\"_blank\" rel=\"noopener\">su p\u00e1gina oficial<\/a> y la documentaci\u00f3n es accesible desde <a href=\"http:\/\/yasnippet.googlecode.com\/svn\/trunk\/doc\/index.html\" target=\"_blank\" rel=\"noopener\">aqu\u00ed<\/a>. Para instalar <strong>yanippet <\/strong>tan s\u00f3lo se debe descargar, desempaquetar el .tgz y mover el fichero llamado <strong>yasnippet-bundle.el <\/strong>en <strong>~\/.emacs.d\/plugins<\/strong> (o bien en cualquier directorio desde donde queramos cargarlo, siempre indic\u00e1ndolo en nuestro <strong>.emacs <\/strong>claro):<\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #ff6600;\"><em>(add-to-list &#8216;load-path \u00ab~\/.emacs.d\/plugins\u00bb)<br \/>\n(require &#8216;yasnippet-bundle)<br \/>\n(yas\/initialize)<br \/>\n(yas\/load-directory \u00ab~\/.emacs.d\/plugins\/yasnippet-version\/snippets\u00bb)<\/em><\/span><\/p>\n<p>Por si a alguien no le ha quedado a\u00fan claro, pod\u00e9is ver una demo de como realizar la instalaci\u00f3n:<\/p>\n<p style=\"text-align: center;\"><object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" width=\"425\" height=\"350\" codebase=\"http:\/\/download.macromedia.com\/pub\/shockwave\/cabs\/flash\/swflash.cab#version=6,0,40,0\"><param name=\"src\" value=\"http:\/\/www.youtube.com\/v\/76Ygeg9miao\" \/><embed type=\"application\/x-shockwave-flash\" width=\"425\" height=\"350\" src=\"http:\/\/www.youtube.com\/v\/76Ygeg9miao\"><\/embed><\/object><\/p>\n<p style=\"text-align: left;\">Una vez hecho esto, lanzamos nuestro flamante emacs y probamos a escribir palabras reservadas como <strong>#include<\/strong> o bien cualquier funci\u00f3n de la <strong>libc <\/strong>o cualquier parte de la demostraci\u00f3n del video observada m\u00e1s arriba. Para comenzar a usarlo, tan s\u00f3lo debemos usar la tecla <strong>TAB<\/strong> (tabulador).<\/p>\n<p style=\"text-align: left;\">Aunque yasnippet, como lo es emacs, es muy extensible, configurable\u00a0 y organizable. Veamos como se puede usar toda la potencia de yasnippet.<\/p>\n<p style=\"text-align: left;\">Para la carga de snippets (ver la web oficial de yasnippet la secci\u00f3n <a href=\"http:\/\/yasnippet.googlecode.com\/svn\/trunk\/doc\/snippet-organization.html\" target=\"_blank\" rel=\"noopener\">\u00abSnippet Organization\u00bb<\/a>):<\/p>\n<p style=\"text-align: left; padding-left: 30px;\">Podemos crear un directorio especialmente para nuestros propios snippets, en nuestro .emacs:<\/p>\n<p style=\"text-align: left; padding-left: 60px;\"><span style=\"color: #ff6600;\"><em>;; Keep personal snippets under ~\/.emacs.d\/mysnippets<br \/>\n(setq yas\/root-directory \u00ab~\/.emacs.d\/mysnippets\u00bb)<\/em><\/span><\/p>\n<p style=\"padding-left: 60px;\"><span style=\"color: #ff6600;\"><em>;; Load the snippets<br \/>\n(yas\/load-directory yas\/root-directory)<\/em><\/span><\/p>\n<p style=\"padding-left: 30px;\">\n<p>Podemos conseguir un efecto \u00e1rbol seg\u00fan los snippets que tengamos usando yas-parents, yas-make-groups, etc&#8230; (leer la documentacion oficial para mas informacion), aqui dejo los enlaces de dicha documentacion:<\/p>\n<p>Organizacion de snippets<\/p>\n<p style=\"padding-left: 30px;\"><a href=\"http:\/\/yasnippet.googlecode.com\/svn\/trunk\/doc\/snippet-organization.html\" target=\"_blank\" rel=\"noopener\">http:\/\/yasnippet.googlecode.com\/svn\/trunk\/doc\/snippet-organization.html<\/a><\/p>\n<p>Expansi\u00f3n de triggers<\/p>\n<p style=\"padding-left: 30px;\"><a href=\"http:\/\/yasnippet.googlecode.com\/svn\/trunk\/doc\/snippet-expansion.html\" target=\"_blank\" rel=\"noopener\">http:\/\/yasnippet.googlecode.com\/svn\/trunk\/doc\/snippet-expansion.html<\/a><\/p>\n<p>Desarrollo de snippets<\/p>\n<p style=\"padding-left: 30px;\"><a href=\"http:\/\/yasnippet.googlecode.com\/svn\/trunk\/doc\/snippet-development.html\" target=\"_blank\" rel=\"noopener\">http:\/\/yasnippet.googlecode.com\/svn\/trunk\/doc\/snippet-development.html<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Yasnippet es un sistema de plantillas (templates) para emacs. Dicho sistema permite escribir con abreviaturas y que \u00e9stas se expandan autom\u00e1ticamente en plantillas para las funciones. Los lenguajes soportados de momento son c, c++, c#, perl, python, ruby, SQL, LaTeX, HTML, CSS, etc&#8230; aunque siempre puedes importar tus propios templates. Para descargar yasnippet se puede [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17],"tags":[8,133,132],"class_list":["post-66","post","type-post","status-publish","format-standard","hentry","category-basic","tag-emacs","tag-google","tag-yasnippet"],"_links":{"self":[{"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/66"}],"collection":[{"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=66"}],"version-history":[{"count":1,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/66\/revisions"}],"predecessor-version":[{"id":775,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/66\/revisions\/775"}],"wp:attachment":[{"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=66"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=66"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=66"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}