複数行の説明がある組織モードのリンクに下線を引きますか?


8

Q:複数行にまたがるリンクの左側の「マージン」の下線に下線を引くのを止めるにはどうすればよいですか?

面は、下線属性が設定されている(または少なくともデフォルトでそうなっている)面をorg-link継承します。通常、それで十分です。ただし、次のスクリーンショットのように、リンクの説明が長すぎて複数行にまたがる場合は、見苦しくなります。linkt

組織モードのリンク

スクリーンショットは、左マージンからインデントに至るまで下線を示しています。これはかなり醜い目盛りです。リンクに下線を付け続ける方法はありますか?それでも、このようにマージンから下線を引き延ばしませか?


1
気に入った解決策を見つけた場合は、おそらくそれがメインラインになるので、組織のメンテナと共有してください:orgmode.org/community.html
grettke

回答:


3

私はで少しいじりましたorg-activate-bracket-links。私はフォントロックの専門家ではないので"^ +" 、リンクの一部を非表示にすることができました。

(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)))

提案をありがとう。左マージンから見苦しい下線を削除しますが、残念ながら、2行目のテキストは左マージンにフラッシュされています。もう少し突っ込んでみます。
ダン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.