Apakah ada cara untuk membuat tag bekerja dengan baik dengan pembungkus baris dalam mode emacs org?

9

Jika buffer terlalu sempit, jika saya membuat tag untuk heading, jumlah spasi sebelum tag menyebabkan tag untuk membungkus melewati ujung baris ke baris baru (saya telah visual-line-modedihidupkan). Ini membuatnya sulit untuk membaca sekilas berita utama, dan menyia-nyiakan layar vertikal real-estate.

Saya pikir idealnya tag akan selalu ditampilkan sebagai rata, terlepas dari jumlah spasi yang sebenarnya. Apakah ada cara untuk melakukan itu? Jika tidak, apakah ada cara lain untuk menghindari ruang yang terbuang?

avv
sumber
2
Bagaimana kalau tidak ada penyelarasan kanan sama sekali ?: (setq org-tags-column 0) Lihat string-doc untuk variabel tersebut: M-x describe-variable RET org-tags-column RET- " Kolom yang tagnya harus indentasi dalam judul. Jika angka ini positif, itu menentukan kolom. Jika negatif, itu berarti bahwa tag harus benar ke kolom itu. Misalnya, -80 berfungsi dengan baik untuk layar karakter 80 normal. Ketika 0, tempatkan tag langsung setelah teks judul, dengan hanya satu spasi di antaranya. "
lawlist
Terima kasih! Saya telah menggunakan (setq org-tags-column 0)yang lebih baik daripada tidak sama sekali, tetapi saya masih ingin memiliki solusi yang tepat. Saya baru saja menandai mod untuk memindahkan ini, terima kasih atas sarannya!

Jawaban:

3

Saya telah bekerja pada beberapa elisp untuk memecahkan masalah yang mirip dengan ini.

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

Ini harus meluruskan kembali kolom tag sehingga selalu berukuran sempurna.

Saat ini tidak berfungsi dengan baik jika lebar jendela yang dipisah secara horizontal tidak sama.

pengasuh
sumber
Mencoba ini, dan tampaknya kode ini memastikan tag selalu rata dengan sisi kanan jendela, tetapi tidak menyentuh tag pada garis yang dibungkus. Dengan asumsi saya tidak melewatkan sesuatu, ini tidak benar-benar menjawab pertanyaan, karena yang terakhir adalah apa yang ditanyakan OP.
Scott Weldon