¿Subrayado en enlaces de modo org con descripciones de varias líneas?

8

P: ¿Cómo puedo dejar de subrayar a través del "margen" izquierdo en enlaces que se extienden en más de una línea?

La cara org-linkhereda de la cara link, que tiene el atributo de subrayado establecido en t(o al menos lo hace por defecto). Normalmente, eso está muy bien. Sin embargo, se pone feo si la descripción del enlace es lo suficientemente larga como para ajustarse a más de una línea, como en la siguiente captura de pantalla:

enlaces de modo org

La captura de pantalla muestra el subrayado que se extiende desde el margen izquierdo hasta la sangría. Esa es una señal visual bastante fea. ¿Hay alguna manera de seguir subrayando los enlaces y, sin embargo, no hacer que el subrayado se extienda desde el margen de esta manera?

Dan
fuente
1
Si encuentra una solución que le guste, compártala con los encargados del mantenimiento de la organización porque probablemente terminará en la línea principal: orgmode.org/community.html
grettke

Respuestas:

3

He jugado un poco con eso org-activate-bracket-links. No soy realmente un experto en el bloqueo de fuentes, así que solo logré hacer "^ +" invisible la parte del enlace:

(defun org-activate-bracket-links (limit)
  "Add text properties for bracketed links."
  (if (and (re-search-forward org-bracket-link-regexp limit t)
           (not (org-in-src-block-p)))
      (let* ((hl (org-match-string-no-properties 1))
             (help (concat "LINK: " (save-match-data (org-link-unescape hl))))
             (ip (org-maybe-intangible
                  (list 'invisible 'org-link
                        'keymap org-mouse-map 'mouse-face 'highlight
                        'font-lock-multiline t 'help-echo help
                        'htmlize-link `(:uri ,hl))))
             (vp (list 'keymap org-mouse-map 'mouse-face 'highlight
                       'font-lock-multiline t 'help-echo help
                       'htmlize-link `(:uri ,hl))))
        ;; We need to remove the invisible property here.  Table narrowing
        ;; may have made some of this invisible.
        (org-remove-flyspell-overlays-in (match-beginning 0) (match-end 0))
        (remove-text-properties (match-beginning 0) (match-end 0)
                                '(invisible nil))
        (if (match-end 3)
            (progn
              (add-text-properties (match-beginning 0) (match-beginning 3) ip)
              (org-rear-nonsticky-at (match-beginning 3))
              (add-text-properties (match-beginning 3) (match-end 3) vp)
              (org-rear-nonsticky-at (match-end 3))
              (add-text-properties (match-end 3) (match-end 0) ip)
              (org-rear-nonsticky-at (match-end 0))
              (let ((b3 (match-beginning 3))
                    (e3 (match-end 3)))
                (save-excursion
                  (save-match-data
                    (goto-char b3)
                    (while (re-search-forward "\\(?:^ +\\| +$\\)" e3 t)
                      (org-rear-nonsticky-at (match-beginning 0))
                      (add-text-properties (match-beginning 0)
                                           (match-end 0) ip)
                      (org-rear-nonsticky-at (match-end 0)))))))
          (add-text-properties (match-beginning 0) (match-beginning 1) ip)
          (org-rear-nonsticky-at (match-beginning 1))
          (add-text-properties (match-beginning 1) (match-end 1) vp)
          (org-rear-nonsticky-at (match-end 1))
          (add-text-properties (match-end 1) (match-end 0) ip)
          (org-rear-nonsticky-at (match-end 0)))
        t)))
abo-abo
fuente
Gracias por la sugerencia. Aunque elimina el subrayado antiestético del margen izquierdo, desafortunadamente, el texto de la segunda línea ahora está alineado con el margen izquierdo. Intentaré hurgar un poco más.
Dan