{"id":87,"date":"2010-06-21T03:37:08","date_gmt":"2010-06-21T01:37:08","guid":{"rendered":"http:\/\/www.blackhats.es\/wordpress\/?p=87"},"modified":"2022-08-20T18:26:02","modified_gmt":"2022-08-20T16:26:02","slug":"org-mode-tags-etiquetas","status":"publish","type":"post","link":"https:\/\/www.blackhats.es\/wordpress\/?p=87","title":{"rendered":"Org-mode : TAGS (etiquetas)"},"content":{"rendered":"<p style=\"text-align: justify;\">Despues de un tiempo inactivo (unos 6 meses); algunos de ellos por estar viajando y sin conexion a Internet y otras veces por otras razones personales por fin vuelvo para continuar con este blog sobre GNU\/Emacs, asi que pido disculpas a todos por este retraso y tiempo inactivo.<\/p>\n<p style=\"text-align: justify;\">Tambien quiero pedir disculpas debido a que los ultimos articulos necesitan ser revisados, ya que contienen frases que no son del todo entendibles o con algunos ejemplos poco claros, asi que intentare revisarlos lo antes posible.<\/p>\n<p style=\"text-align: justify;\">Por otro lado decir que hemos migrado a nuevos servidores de OVH (antes estaban en 1&amp;1) con mejores servicios, asi pues, hemos instalado nuevas versiones de software mas modernas mas seguras y con mas funcionalidades. <span style=\"color: #808080;\"><strong><span style=\"color: #003366;\">Gracias a |[TDP]|<\/span><span style=\"color: #ff0000;\"> <\/span><\/strong><\/span>ya que ha cargado con la parte pesada y se ha encargado de todo ello. Sin mas dilacion, pasamos a la parte tecnica y especifica de GNU\/Emacs, en el cual hablare de los TAGS (o etiquetas) en org-mode.<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.blackhats.es\/wordpress\/wp-content\/uploads\/2010\/06\/TDP2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-92\" title=\"TDP2\" src=\"https:\/\/www.blackhats.es\/wordpress\/wp-content\/uploads\/2010\/06\/TDP2.png\" alt=\"\" width=\"810\" height=\"90\" srcset=\"https:\/\/www.blackhats.es\/wordpress\/wp-content\/uploads\/2010\/06\/TDP2.png 900w, https:\/\/www.blackhats.es\/wordpress\/wp-content\/uploads\/2010\/06\/TDP2-300x33.png 300w\" sizes=\"(max-width: 810px) 100vw, 810px\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">Una forma de relacionar informacion cruzada es usar <strong>TAGS<\/strong> en las lineas de cabecera. Cada linea de cabecera contiene una lista de <strong>TAGS<\/strong> (que deben tener un <strong>formato alfanumerico<\/strong> o bien &#8216;<strong>&#8211;<\/strong>&#8216; o &#8216;<strong>_<\/strong>&#8216;) por ejemplo:<\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #008080;\">* Reunion con el grupo Frances\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 :work:<br \/>\n** Sumario por Frank\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 :boss:notes:<br \/>\n*** TODO Preparar presentacion\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 :action:<\/span><\/p>\n<p><span style=\"color: #ff6600;\"><strong>Herencia<\/strong><\/span><\/p>\n<p>Para usar los <strong>TAGS<\/strong> definidos en un solo fichero podemos usar:<\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #008080;\">#+FILETAGS: :Peter:Boss:Secret:<\/span><\/p>\n<p style=\"text-align: justify;\">Que ademas pueden usar herencia (o no) si se configuran las variables <strong>org-use-tag-inheritance<\/strong> y <strong>org-tags-exclude-from-inheritance<\/strong>.<\/p>\n<p style=\"text-align: justify;\">Cuando una linea de cabecera coincide durante una busqueda de <strong>TAGS<\/strong> y la herencia esta activada (o habilitada), todos los subniveles del mismo nivel heredaran este mismo <strong>TAG<\/strong>, por lo que esto puede provocar muchos resultados en algunos casos, asi que si solo se quiere encontrar la primera coincidencia en un subarbol podemos configurar la variable <strong>org-tags-match-list-sublevels<\/strong> (aunque esto no se recomienda segun la web oficial de org-mode).<\/p>\n<p><span style=\"color: #ff6600;\"><strong>Creando TAGS<\/strong><\/span><\/p>\n<p style=\"text-align: justify;\">Generalmente los <strong>TAGS<\/strong> se escriben a mano despues de la linea de cabecera, aunque despues de pulsar &#8216;<strong>:<\/strong>&#8216; podemos usar <strong>M-TAB<\/strong> para <strong>autocompletion<\/strong> de <strong>TAGS<\/strong>, ademas existen algunos keystrokes interesantes relacionados:<\/p>\n<p style=\"text-align: justify;\"><strong>C-c C-q<\/strong> \u00f3 <strong>C-c C-c<\/strong> : Crea <strong>TAGS<\/strong> para la linea de cabecera actual. Ademas despues de presionar <strong>INTRO<\/strong> el <strong>TAG<\/strong> sera alineado, pero con <strong>C-u INTRO<\/strong> todos los tags seran alineados respecto la variable <strong>org-tags-column<\/strong>.<\/p>\n<p style=\"text-align: justify;\">Org soporta insercion basada en listas de <strong>TAGS<\/strong>, para ello debemos especificar de forma global <strong>org-tag-alist<\/strong> con una lista de <strong>TAGS<\/strong> o bien para un fichero especifico mediante:<\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #008080;\">#+TAGS: @work @home @tennisclub<br \/>\n#+TAGS: laptop car pc boat<\/span><\/p>\n<p style=\"text-align: justify;\">En el caso de que la lista sea dinamica usando la variable <strong>org-tag-alist<\/strong> debemos dejar la lista de <strong>TAGS<\/strong> en blanco tal que asi:<\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #008080;\">#+TAGS:<\/span><\/p>\n<p style=\"text-align: justify;\">Podemos especificar una lista de <strong>TAGS<\/strong> en la variable <strong>org-tag-persistent-alist<\/strong>, lo que usara automaticamente en cada fichero dicha lista de <strong>TAGS<\/strong>, a excepcion de si se anade esta linea:<\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #008080;\">#+STARTUP: noptag<\/span><\/p>\n<p style=\"text-align: justify;\">Existe ademas un metodo de seleccion de <strong>TAGS<\/strong> ultrarapido llamado <strong>fast tag selection<\/strong>, que permite deseleccionar y seleccionar <strong>TAGS<\/strong> simplemente presionando una tecla, por lo que deberemos asignar teclas unicas a cada <strong>TAG<\/strong>. Tambien se pueden configurar de forma global configurando la variable <strong>org-tag-alist<\/strong> en nuestro <strong>.emacs<\/strong>:<\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #0000ff;\"><em>(setq org-tag-alist &#8216;((\u00ab@work\u00bb . ?w) (\u00ab@home\u00bb . ?h) (\u00ablaptop\u00bb . ?l)))<\/em><\/span><\/p>\n<p>Se puede configurar de manera local (solo relevante para un fichero) de la siguiente forma:<\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #008080;\">#+TAGS: @work(w) @home(h) @tennisclub(t) \\n laptop(l) pc(p)<\/span><\/p>\n<p>Especificando &#8216;<strong>\\n<\/strong>&#8216; comenzara una nueva linea despues de un <strong>TAG<\/strong> especifico, que seria lo equivalente a:<\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #008080;\">#+TAGS: @work(w) @home(h) @tennisclub(t)<br \/>\n#+TAGS: laptop(l) pc(p)<\/span><\/p>\n<p style=\"text-align: justify;\">Se pueden agrupar los <strong>TAGS<\/strong> mediante llaves, indicando asi que al menos uno de los 3 encerrado entre llaves debe ser seleccionado:<\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #008080;\">#+TAGS: { @work(w) @home(h) @tennisclub(t) } laptop(l) pc(p)<\/span><\/p>\n<p>Para activar los cambios debemos pulsar<strong> C-c C-c<\/strong>.<\/p>\n<p>Es posible crear <strong>TAGS<\/strong> de exclusion mutua configurando la variable<strong> org-tags-alist<\/strong>:<\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #0000ff;\"><em>(setq org-tag-alist &#8216;((:startgroup . nil)<br \/>\n(\u00ab@work\u00bb . ?w) (\u00ab@home\u00bb . ?h)<br \/>\n(\u00ab@tennisclub\u00bb . ?t)<br \/>\n(:endgroup . nil)<br \/>\n(\u00ablaptop\u00bb . ?l) (\u00abpc\u00bb . ?p)))<\/em><\/span><\/p>\n<p>Presionando <strong>C-c C-c<\/strong> y cualquier tecla de las siguientes:<\/p>\n<ul>\n<li><strong>a-z<\/strong> \u00f3 <strong>&#8211;<\/strong> \u00f3 <strong>_<\/strong> : podremos anadir o eliminar un <strong>TAG<\/strong> de la linea actual (ademas tendra en cuenta tags de exclusion mutua).<\/li>\n<li><strong>TAB<\/strong> : Autocompletara un <strong>TAG<\/strong>.<\/li>\n<li><strong>SPC<\/strong> : Elimina todos los <strong>TAGS<\/strong> de la linea actual.<\/li>\n<li><strong>INTRO<\/strong> : Acepta el nuevo <strong>TAG<\/strong> modificado.<\/li>\n<li><strong>C-g<\/strong> : Cancela el nuevo <strong>TAG<\/strong>.<\/li>\n<li><strong>q<\/strong> : Si q no esta asignado como un <strong>TAG<\/strong>, abortara como <strong>C-g<\/strong>.<\/li>\n<li><strong>!<\/strong> : Deshabilita todos los <strong>TAGS<\/strong> de exclusion mutua.<\/li>\n<li><strong>C-c<\/strong> : Hace toggle para auto-salida del siguiente cambio. En modo experto el primer <strong>C-c<\/strong> mostrara la ventana de seleccion.<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Es posible modificar la variable <strong>org-fast-tag-selection-single-key<\/strong> para evitar tener que presionar <strong>INTRO<\/strong> para <strong>TAGS<\/strong> demasiado usados y asi tener el mismo efecto.<\/p>\n<p><strong><span style=\"color: #ff6600;\">Busqueda en tags<\/span><\/strong><\/p>\n<p>Es posible extraer cierta informacion a partir de los <strong>TAGS<\/strong>. Por ejemplo:<\/p>\n<ul>\n<li><strong>C-c \\<\/strong> \u00f3<strong> C-c \/ m<\/strong> : Crea un arbol con todas las lineas de cabecera que coincidan con dicho <strong>TAG<\/strong>.<\/li>\n<li><strong>C-u C-c \\<\/strong> \u00f3 <strong>C-u C-c \/<\/strong> : Con el prefijo esta vez ignorara aquellas lineas de cabecera que no sean un <strong>TODO<\/strong>.<\/li>\n<li><strong>C-c a m<\/strong> : Crea una lista global de la agenda de todos los <strong>TAGS<\/strong> que coincidan.<\/li>\n<li><strong>C-c a M<\/strong> : Crea una lista global de la agenda de todos los <strong>TAGS<\/strong> que conicidan, pero solo buscara aquellos que sean <strong>TODO<\/strong> y forzara la busqueda en subtareas (ver variable <strong>org-tags-match-list-sublevels<\/strong>).<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Estos comandos se pueden usar para buscar empleando logica booleana como por ejemplo &#8216;<strong>+boss+urgent-project1<\/strong>&#8216; para encontrar todas las cabeceras de linea que tengan el <strong>TAG<\/strong> de &#8216;jefe&#8217; y el de &#8216;urgente&#8217; pero no para el &#8216;proyecto1&#8217;.<\/p>\n<p style=\"text-align: justify;\">Recordad que este articulo es interesante combinarlo con los anteriores referentes a org-mode (<a href=\"https:\/\/www.blackhats.es\/wordpress\/?p=83\" target=\"_blank\" rel=\"noopener\">tablas<\/a>, <a href=\"https:\/\/www.blackhats.es\/wordpress\/?p=86\" target=\"_blank\" rel=\"noopener\">hiperenlaces<\/a> y <a href=\"https:\/\/www.blackhats.es\/wordpress\/?p=85\" target=\"_blank\" rel=\"noopener\">tareas<\/a>).<\/p>\n<p style=\"text-align: justify;\">Al principio el uso de <strong>org-mode <\/strong>puede resultar algo complejo (sobretodo si no estamos habituados o no lo hemos estado al antiguo <strong>outline-mode<\/strong>) pero con un poco de practica, ignorando aquellos comandos que usemos con menos frecuencia y usando solo aquellos que mas nos interesen en cada momento, al final conseguiremos dominar este modo de manera mecanica.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Despues de un tiempo inactivo (unos 6 meses); algunos de ellos por estar viajando y sin conexion a Internet y otras veces por otras razones personales por fin vuelvo para continuar con este blog sobre GNU\/Emacs, asi que pido disculpas a todos por este retraso y tiempo inactivo. Tambien quiero pedir disculpas debido a que [&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,115,149,145,150,120],"class_list":["post-87","post","type-post","status-publish","format-standard","hentry","category-basic","tag-emacs","tag-gnu","tag-org","tag-org-mode","tag-organizacion","tag-tags"],"_links":{"self":[{"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/87"}],"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=87"}],"version-history":[{"count":7,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/87\/revisions"}],"predecessor-version":[{"id":768,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/87\/revisions\/768"}],"wp:attachment":[{"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=87"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=87"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=87"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}