Menggarisbawahi dalam tautan mode-org dengan uraian multiline?

8

T: Bagaimana saya bisa berhenti menggarisbawahi melalui "margin" kiri di tautan yang melampaui lebih dari satu baris?

Wajah org-linkmewarisi dari wajah link, yang memiliki atribut garis bawah diatur ke t(atau setidaknya memang secara default). Biasanya, itu semua baik dan bagus. Akan tetapi, jika uraian tautannya cukup panjang sehingga terbungkus lebih dari satu baris, seperti pada tangkapan layar berikut:

tautan mode-org

Tangkapan layar memperlihatkan garis bawah yang membentang dari margin kiri hingga lekukan. Kutu visual yang sangat jelek. Apakah ada cara untuk tetap menggarisbawahi untuk tautan, namun belum memiliki garis bawah dari margin dengan cara ini?

Dan
sumber
1
Jika Anda menemukan solusi yang Anda sukai, maka silakan bagikan dengan pengelola org karena mungkin akan berakhir di jalur utama: orgmode.org/community.html
grettke

Jawaban:

3

Saya sudah sedikit mengacau org-activate-bracket-links. Saya tidak benar-benar ahli dalam penguncian font, jadi saya hanya berhasil membuat "^ +" bagian dari tautan tidak terlihat:

(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
sumber
Terima kasih untuk sarannya. Meskipun tidak menghilangkan garis bawah yang tidak sedap dipandang dari margin kiri, sayangnya, teks dari baris kedua sekarang rata ke margin kiri sebagai gantinya. Saya akan mencoba untuk melihat-lihat sedikit lebih banyak.
Dan