org-mode – Cómo esconderse &lt;<target> &gt; s?

Pregunta:

Utilizo el modo org principalmente (con mucho) directamente dentro de Emacs (a diferencia de como un marcado para ser visto en última instancia a través de, digamos, un navegador web o un visor de PDF). Por lo tanto, estoy interesado en formas de "ocultar" 1 la mayor cantidad posible de marcado en modo org.

En particular,

¿Hay alguna manera de ocultar las especificaciones de destino del modo de organización, de la forma <<target>> ?

Estoy principalmente interesado en soluciones que se pueden aplicar de forma selectiva (por ejemplo, solo se ocultan las especificaciones de destino que coinciden con una expresión regular en particular), pero una solución que oculte todos los destinos de este formulario también estaría bien.

De manera más general, me interesaría encontrar formas de ocultar el marcado arbitrario del modo de organización.


1 Por "ocultar" me refiero a cualquier proceso que [[#target][ cuenta de la "invisibilidad" ( en un búfer en modo org de Emacs ) del [[#target][ y final ]] [[#target][ (por ejemplo) en la especificación del hipervínculo [[#target][here]] . Esta forma de ocultación debe contrastarse con lo que sucede con las estrellas principales de un título cuando org-hide-leading-stars no es nulo. En el último caso, las estrellas todavía se muestran, aunque en un color que se aproxima al color de fondo de la ventana. Todavía ocupan espacio en la pantalla. Esto no es lo que me refiero al "ocultar" en este post.

Respuesta:

Pegue lo siguiente en sus archivos de inicio. Esto le brinda una nueva opción de personalización org-hidden-links-additional-re . Puede desactivar esta opción o parametrizarla con una expresión regular. Las cadenas que coinciden con esta expresión regular en un búfer de organización se ocultan cuando se activan los "enlaces descriptivos" (elemento de menú Org-> Hipervínculos-> Enlaces descriptivos ). El valor predeterminado es <<[<]?[[:alnum:]]>>[>]? que oculta los destinos de los enlaces. Esta variable es local de búfer. Puede configurarlo en las variables locales de archivo.

(defcustom org-hidden-links-additional-re "<<[<]?[[:alnum:]]+>>[>]?"
  "Regular expression that matches strings where the invisible-property is set to org-link."
  :type '(choice (const :tag "Off" nil) regexp)
  :group 'org-link)
(make-variable-buffer-local 'org-hidden-links-additional-re)

(defun org-activate-hidden-links-additional (limit)
  "Put invisible-property org-link on strings matching `org-hide-links-additional-re'."
  (if org-hidden-links-additional-re
      (re-search-forward org-hidden-links-additional-re limit t)
    (goto-char limit)
    nil))

(add-hook 'org-font-lock-set-keywords-hook (lambda ()
                         (add-to-list 'org-font-lock-extra-keywords
                              '(org-activate-hidden-links-additional
                                (0 '(face org-target invisible org-link))))))

La siguiente versión aborda los deseos del primer comentario de Kartik Shenoy, es decir: Simplemente oculte dos de los ángulos en cada extremo del texto del enlace:

(defcustom org-hidden-links-additional-re "\\(<<\\)[[:alnum:]]+\\(>>\\)"
  "Regular expression that matches strings where the invisible-property of the sub-matches 1 and 2 is set to org-link."
  :type '(choice (const :tag "Off" nil) regexp)
  :group 'org-link)
(make-variable-buffer-local 'org-hidden-links-additional-re)

(defun org-activate-hidden-links-additional (limit)
  "Put invisible-property org-link on strings matching `org-hide-links-additional-re'."
  (if org-hidden-links-additional-re
      (re-search-forward org-hidden-links-additional-re limit t)
    (goto-char limit)
    nil))

(defun org-hidden-links-hook-function ()
  "Add rule for `org-activate-hidden-links-additional' to `org-font-lock-extra-keywords'.
You can include this function in `org-font-lock-set-keywords-hook'."
  (add-to-list 'org-font-lock-extra-keywords
                              '(org-activate-hidden-links-additional
                                (1 '(face org-target invisible org-link))
                (2 '(face org-target invisible org-link)))))

(add-hook 'org-font-lock-set-keywords-hook #'org-hidden-links-hook-function)

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım