{"id":86,"date":"2009-12-09T01:45:25","date_gmt":"2009-12-08T23:45:25","guid":{"rendered":"http:\/\/www.blackhats.es\/wordpress\/?p=86"},"modified":"2022-08-20T18:26:02","modified_gmt":"2022-08-20T16:26:02","slug":"org-mode-hiperenlaces","status":"publish","type":"post","link":"https:\/\/www.blackhats.es\/wordpress\/?p=86","title":{"rendered":"Org-mode : Hiperenlaces"},"content":{"rendered":"<p>Org permite guardar enlaces y que sean accesibles de forma click-able. El formato general es:<\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #0000ff;\"><span style=\"color: #008080;\">[[link][descripcion]\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 alternativa\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 [[link]]<\/span><\/span><\/p>\n<p style=\"text-align: justify;\">Una vez todos los corchetes esten presentes, la descripcion sera mostrada, asi como el enlace. La forma que se usa para resaltarlos es mediante la variable <strong>org-link<\/strong>, que por defecto es subrayado. Es posible modificar tanto el link como su descripcion pulsando las teclas <strong>C-c C-l<\/strong>. Para borrar el enlace tan solo debemos poner el cursor al principio de la linea y pulsar <strong>BACKSPACE<\/strong>.<\/p>\n<p><strong><span style=\"color: #ff6600;\">Enlaces internos<\/span><\/strong><\/p>\n<p style=\"text-align: justify; padding-left: 30px;\">El link puede ser interno (y no una URL) para ello debemos crear identificadores y ser responsables de mantener un unico identificador diferente para cada enlace interno, por ejemplo si anadimos esta linea:<\/p>\n<p style=\"padding-left: 60px;\"><span style=\"color: #0000ff;\"><span style=\"color: #008080;\"># &lt;&lt;&lt;Mi objetivo&gt;&gt;&gt;<\/span><\/span><\/p>\n<p style=\"padding-left: 30px;\">Podremos referenciar a dicho enlace interno creando lo siguiente:<\/p>\n<p style=\"padding-left: 60px;\"><span style=\"color: #0000ff;\"><span style=\"color: #008080;\">[[Mi objetivo]]<\/span><\/span><\/p>\n<p style=\"padding-left: 30px;\">o bien<\/p>\n<p style=\"padding-left: 60px;\"><span style=\"color: #0000ff;\"><span style=\"color: #008080;\">[[Mi objetivo]][[Buscar mi objetivo]]<\/span><\/span><\/p>\n<p style=\"text-align: justify; padding-left: 30px;\">Para acceder a los enlaces debemos presionar <strong>C-c C-o<\/strong> o bien hacer click con el raton. Tambien es posible exportarlos como enlaces HTML mediante HTML export (el cual comentaremos mas adelante).<\/p>\n<p style=\"text-align: justify; padding-left: 30px;\">Si el enlace no existe como tal, org buscara enlaces que comiencen por el mismo patron (es decir <strong>*Mi objetivo<\/strong>) y mostrara los resultados solo si coincide completamente, pudiendo acceder a cada uno de ellos o bien volviendo atras mediante <strong>C-c &amp;<\/strong>.<\/p>\n<p style=\"text-align: justify; padding-left: 30px;\">Es posible crear enlaces usando botones de radio mediante (solo seran cargados cuando se cargue el fichero org la primera vez o bien pulsando <strong>C-c C-c<\/strong>):<\/p>\n<p style=\"padding-left: 60px;\"><span style=\"color: #0000ff;\"><span style=\"color: #008080;\">&lt;&lt;&lt;Mi objetivo&gt;&gt;&gt;<\/span><\/span><\/p>\n<p><strong><span style=\"color: #ff6600;\">Enlaces externos<\/span><\/strong><\/p>\n<p style=\"text-align: justify; padding-left: 30px;\">Org permite enlazar a ficheros, webs, usenet, mails, entradas de bases de datos, e incluso conversaciones de irc o sus logs. Todos los enlaces externos comienzan por la palabra clave que identifica el tipo de enlace externo seguido por los dos puntos y el propio enlace, por ejemplo:<\/p>\n<p style=\"padding-left: 60px;\"><span style=\"color: #0000ff;\"><span style=\"color: #008080;\">http:\/\/www.blackhats.es\/\u00a0\u00a0\u00a0 Una web<br \/>\nfile:\/home\/overdrive\/org.txt\u00a0\u00a0\u00a0 Un fichero con PATH absoluto<br \/>\n\/home\/overdrive\/org.txt\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 Igual que arriba<br \/>\nfile:documentos\/ultimo.pdf\u00a0\u00a0\u00a0 Un fichero con PATH relativo<br \/>\n.\/documentos\/ultimo.pdf\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 Igual que arriba<br \/>\nfile:alguntexto::NNN\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 Una linea donde saltar dentro de un fichero<br \/>\nfile:projects.org\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 Enlace a otro fichero org<br \/>\nfile:projects.org::foo bar\u00a0\u00a0\u00a0 Busqueda de texto en un fichero org<br \/>\nfile.projects.org::*task bar\u00a0\u00a0\u00a0 Busqueda de cabecera en un fichero org<br \/>\nid:B742456-2EAS-4FGHDF-345BZ\u00a0\u00a0\u00a0 Enlace a un identificador<br \/>\nnews:comp.emacs\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 Enlace a usenet<br \/>\nmailto:zoom@blackhats.es\u00a0\u00a0\u00a0 Enlace a un correo<br \/>\nvm:carpeta\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 Enlace VM a una carpeta<br \/>\nvm:carpeta#id\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 Enlace VM a un mensaje<br \/>\nvm:\/\/yo@al.site.org\/carpeta#id \u00a0\u00a0\u00a0 Enlace VM a un identificador de una maquina remota<br \/>\nwl:carpeta\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 Enlace WANDERLUST a una carpeta<br \/>\nwl:carpeta#id\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 Enlace WANDERLUST a un id de una carpeta<br \/>\nmhe:carpeta\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 Enlace MH-E a una carpeta<br \/>\nmhe:carpeta#id\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 Enlace ME-E a un id de una carpeta<br \/>\nrmail:carpeta\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 Enlace rmail a una carpeta<br \/>\nrmail:carpeta#id\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 Enlace rmail a un id de una carpeta<br \/>\ngnus:grupo\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 Enlace gnus a un grupo<br \/>\ngnus:grupo#id\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 Enlace gnus a un id de un grupo<br \/>\nbbdb:R.*Stallman\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 Enlace BBDB con expresion regular (regexp)<br \/>\nirc:\/freenode.net\/#emacs\/over\u00a0\u00a0\u00a0 Enlace IRC<br \/>\nshell:ls *.org\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 Enlace a un comando shell<br \/>\nelisp:org-agenda\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 Enlace a un comando interactivo Elisp<br \/>\nelisp:(find-file-other-frame \u00abelisp.org\u00bb)\u00a0\u00a0 Enlace a un formulario lisp a evaluar<\/span><\/span><\/p>\n<p style=\"text-align: justify; padding-left: 30px;\">Los enlaces deben ser cerrados con doble corchete y deben contener un texto descriptivo en lugar de mostrar la URL:<\/p>\n<p style=\"padding-left: 60px;\"><span style=\"color: #0000ff;\"><span style=\"color: #008080;\">[[http:\/\/www.gnu.org\/software\/emacs\/][GNU Emacs]]<\/span><\/span><\/p>\n<p style=\"text-align: justify; padding-left: 30px;\">Es posible poner como descripcion una URL o una imagen que luego puede ser mostrada inline. Ademas para evitar problemas con espacios o ciertas palabras reservadas es posible mediante el entrecomillado simple por ejemplo:<\/p>\n<p style=\"padding-left: 60px;\"><span style=\"color: #0000ff;\"><span style=\"color: #008080;\">&#8216;bbdb:Richard Stallman&#8217;<\/span><\/span><\/p>\n<p><strong><span style=\"color: #ff6600;\">Administracion<\/span><\/strong><\/p>\n<p style=\"text-align: justify; padding-left: 30px;\"><strong>C-c l<\/strong> : Si queremos insertar un enlace (ya sea para buffers, VM, rmail, Wanderlust, MH-E, gnus, navegadores como W3 o W3M, contactos BBDB, irc, agenda u otros ficheros).<br \/>\n<strong> C-c C-l <\/strong>: Inserta un enlace de forma interactiva sobre el cursor (permitiendo usar autocompletion con TAB)<br \/>\n<strong> C-u C-c C-l<\/strong> : Inserta un enlace usando fichero que sera insertado.<br \/>\n<strong> C-c C-o<\/strong> \u00f3 <strong>RET<\/strong> : Abre un enlace.<br \/>\n<strong> C-u C-u C-c C-o<\/strong> : Abre un enlace evitando emacs.<br \/>\n<strong> C-c %<\/strong> : Mete la posicion actual en el mark-ring.<br \/>\n<strong> C-c &amp;<\/strong> : Salta a una posicion guardada.<br \/>\n<strong> C-c C-x C-n<\/strong> : Se desplaza al siguiente enlace en el buffer.<br \/>\n<strong> C-c C-x C-p<\/strong> : Se desplaza al enlace anterior en el buffer.<\/p>\n<p style=\"padding-left: 30px;\">Se puede bindear a <strong>C-n<\/strong> y <strong>C-p<\/strong> anadiendo las siguientes lineas en nuestro <strong>.emacs<\/strong>:<\/p>\n<p style=\"padding-left: 60px;\"><span style=\"color: #0000ff;\"><em>(add-hook &#8216;org-load-hook<br \/>\n(lambda ()<br \/>\n(define-key &#8216;org-mode-map \u00ab\\C-n\u00bb &#8216;org-next-link)<br \/>\n(define-key &#8216;org-mode-map \u00ab\\C-p\u00bb &#8216;org-previous-link)))<\/em><\/span><\/p>\n<p><strong><span style=\"color: #ff6600;\">Usando enlaces<\/span><\/strong><\/p>\n<p style=\"padding-left: 30px;\">Se pueden insertar las siguientes lineas en nuestro <span style=\"color: #0000ff;\">.emacs<\/span> para acceder a los enlaces fuera de org:<\/p>\n<p style=\"padding-left: 60px;\"><span style=\"color: #0000ff;\"><em>(global-set-key \u00ab\\C-c L\u00bb &#8216;org-insert-link-global)<br \/>\n(global-set-key \u00ab\\C-c o\u00bb &#8216;org-open-at-point-global)<\/em><\/span><\/p>\n<p><strong><span style=\"color: #ff6600;\">Abreviaturas<\/span><\/strong><\/p>\n<p style=\"padding-left: 30px;\">Se pueden usar abreviaturas para evitar tener que escribir mas de la cuenta, por ejemplo:<\/p>\n<p style=\"padding-left: 60px;\"><span style=\"color: #0000ff;\"><span style=\"color: #008080;\">[[linkword:tag][descripcion]]<\/span><\/span><\/p>\n<p style=\"text-align: justify; padding-left: 30px;\">Donde &#8216;<strong>tag<\/strong>&#8216; es opcional y <strong>linkword<\/strong> debe ser un caracter <strong>alfanumberico<\/strong> o &#8216;<strong>_<\/strong>&#8216; o &#8216;<strong>&#8211;<\/strong>&#8216;. En lugar de tener que repetir dicha linea muchas veces podemos hacer cosas como:<\/p>\n<p style=\"padding-left: 60px;\"><span style=\"color: #0000ff;\"><em>(setq org-link-abbrev-alist<br \/>\n&#8216;((\u00abbugzilla\u00bb . \u00abhttp:\/\/10.1.2.9\/bugzilla\/show_bug.cgi?id=\u00bb)<br \/>\n(\u00abgoogle\u00bb\u00a0\u00a0 . \u00abhttp:\/\/www.google.com\/search?q=\u00bb)<br \/>\n(\u00abads\u00bb \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 . \u00abhttp:\/\/adsabs.harvard.edu\/cgi-bin\/nph-abs_connect?author=%s&amp;db_key=AST\u00bb)))<\/em><\/span><\/p>\n<p style=\"text-align: justify; padding-left: 30px;\">Para el primer caso podemos enlazar un bug con <span style=\"color: #0000ff;\">[[bugzilla:129]]<\/span>, para el segundo caso podriamos usar<span style=\"color: #0000ff;\"> [[google:OrgMode]]<\/span> y para el ultimo caso podriamos usar <span style=\"color: #0000ff;\">[[ads:Dominik,C]]<\/span> que reemplazara el contenido la cadena &#8216;<strong>%s<\/strong>&#8216; por el tag.<\/p>\n<p style=\"padding-left: 30px;\">Para realizar abreviaturas para un fichero especifico podemos usar:<\/p>\n<p style=\"padding-left: 60px;\"><span style=\"color: #0000ff;\"><span style=\"color: #008080;\">#+LINK: bugzilla http:\/\/10.1.2.9\/bugzilla\/show_bug.cgi?id=<br \/>\n#+LINK: google\u00a0\u00a0\u00a0 \u00a0http:\/\/www.google.com\/search?q=%s<\/span><\/span><\/p>\n<p style=\"padding-left: 30px;\">Ademas es posible usar completion para abreviaturas despues de escribir &#8216;<strong>[<\/strong>&#8216;.<\/p>\n<p><span style=\"color: #ff6600;\"><strong>Opciones de busqueda<\/strong><\/span><\/p>\n<p style=\"text-align: justify; padding-left: 30px;\">Los enlaces pueden contener cierta informacion a la hora de saltar en un enlace particular, como por ejemplo el numero de linea, una expresion regular, etc&#8230; por ejemplo:<\/p>\n<p style=\"padding-left: 60px;\"><span style=\"color: #0000ff;\"><span style=\"color: #008080;\">[[file:~\/codigo\/main.c::255]]<br \/>\n[[file:~\/xx.org::My objetivo]]<br \/>\n[[file:~\/xx.org::*My objetivo]]<br \/>\n[[file:~\/xx.org::\/expresion_regular\/]]<\/span><\/span><\/p>\n<p><span style=\"color: #ff6600;\"><strong>Busquedas personalizadas<\/strong><\/span><\/p>\n<p style=\"text-align: justify; padding-left: 30px;\">Es posible modificar y personalizar las busquedas para buscar enlaces en ficheros con una extension particular hookeando variables como <strong>org-create-file-search-functions<\/strong> y <strong>org-execute-file-search-functions<\/strong>, tambien es interesante ver el mecanismo que usa org-mode para buscar en bases de datos <strong>BibTeX<\/strong>, para ello es posible ver la implementacion en <strong>org-bibtex.el<\/strong>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Org permite guardar enlaces y que sean accesibles de forma click-able. El formato general es: [[link][descripcion]\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 alternativa\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 [[link]] Una vez todos los corchetes esten presentes, la descripcion sera mostrada, asi como el enlace. La forma que se usa para resaltarlos es mediante la variable org-link, que por defecto es subrayado. Es posible [&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,158,115,159,157,149,145,150,146],"class_list":["post-86","post","type-post","status-publish","format-standard","hentry","category-basic","tag-emacs","tag-enlaces","tag-gnu","tag-gnuemacs","tag-hiperenlaces","tag-org","tag-org-mode","tag-organizacion","tag-orgmode"],"_links":{"self":[{"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/86"}],"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=86"}],"version-history":[{"count":1,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/86\/revisions"}],"predecessor-version":[{"id":770,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/86\/revisions\/770"}],"wp:attachment":[{"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=86"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=86"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=86"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}