Unterstreichen im Org-Modus Links mit mehrzeiligen Beschreibungen?

8

F: Wie kann ich aufhören, in Links, die sich über mehr als eine Zeile erstrecken, durch den linken "Rand" zu unterstreichen?

Das Gesicht org-linkerbt von dem Gesicht link, für das das Unterstreichungsattribut festgelegt ist t(oder zumindest standardmäßig). Normalerweise ist das alles schön und gut. Es wird jedoch hässlich, wenn die Beschreibung des Links so lang ist, dass er sich auf mehr als eine Zeile erstreckt, wie im folgenden Screenshot dargestellt:

org-mode links

Der Screenshot zeigt die Unterstreichung vom linken Rand bis zum Einzug. Das ist eine ziemlich hässliche visuelle Zecke. Gibt es eine Möglichkeit, Links weiter zu unterstreichen, ohne dass sich die Unterstreichung auf diese Weise vom Rand aus erstreckt?

Dan
quelle
1
Wenn Sie eine Lösung finden, die Ihnen gefällt, teilen Sie sie bitte den Organisationsbetreuern
landen wird

Antworten:

3

Ich habe ein bisschen rumgespielt org-activate-bracket-links. Ich bin kein Experte für das Sperren von Schriftarten, daher habe ich es nur geschafft, den "^ +" Teil des Links unsichtbar zu machen:

(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
quelle
Danke für den Vorschlag. Obwohl dadurch die unschöne Unterstreichung am linken Rand beseitigt wird, ist der Text der zweiten Zeile jetzt leider bündig mit dem linken Rand. Ich werde versuchen, ein bisschen mehr herumzustöbern.
Dan