emacs orgモードの行の折り返しでタグを適切に機能させる方法はありますか?


9

バッファが狭すぎる場合、見出しのタグを作成すると、タグの前の空白の量により、タグが行の終わりを越えて新しい行にvisual-line-mode折り返されます(オンにしました)。これにより、見出しを読み飛ばして読むのが難しくなり、垂直画面の不動産が無駄になります。

理想的には、実際のスペースの数に関係なく、タグは常に右揃えで表示されると思います。それを行う方法はありますか?そうでない場合、無駄なスペースを回避する他の方法はありますか?


2
右揃えがない場合はどうですか?: (setq org-tags-column 0) 上記の変数のdoc-stringを参照してください: M-x describe-variable RET org-tags-column RET-" 見出しでタグをインデントする列。この数値が正の場合、列を指定します。負の場合、は、タグがその列にぴったり合っていることを意味します。たとえば、-80は通常の80文字の画面に適しています。0の場合、見出しテキストの直後にスペースを1つだけ入れてタグを配置します。 "
lawlist

ありがとう!私は(setq org-tags-column 0)何よりも優れているものを使用していますが、適切に調整された解決策が欲しいです。私はこれを動かすためにmodsにフラグを立てました、提案をありがとう!

回答:


3

このような問題を解決するために、elispに取り組んでいます。

(defun nanny/org-realign-tag-column ()
  (interactive)
  (if (and (equal major-mode 'org-mode)
           (org-get-buffer-tags))
      ;; ignore `message' with flet so org-set-tags doesn't yell at us.
      (flet ((message (&rest args) 'ignore))
        (let ((col (- (- (window-width) 3)))
              (already-modified? (buffer-modified-p)))
          (setq org-tags-column col)
          (org-set-tags 4 t)
          ;; `org-set-tags' modifies the buffer, but I don't really care, so
          ;; mark the buffer as unmodified if it was unmodified previously.
          (if (not already-modified?)
              (set-buffer-modified-p nil))))))
(add-hook 'window-configuration-change-hook 'nanny/org-realign-tag-column)

これにより、タグ列が再調整され、常に最適なサイズになります。

現在、水平方向に分割されたウィンドウの幅が等しくない場合、正しく機能しません。


これを試してみたところ、このコードにより、タグが常にウィンドウの右側に揃うようになっているように見えますが、折り返された行のタグには触れません。私が何かを見逃していないと仮定すると、OPが求めていたのは後者なので、これは実際には質問の答えにはなりません。
Scott Weldon
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.