C'è un modo per far funzionare bene i tag con il ritorno a capo in modalità emacs org?


9

Se il buffer è troppo stretto, se creo un tag per un'intestazione, la quantità di spazio bianco prima del tag fa sì che il tag superi la fine della riga su una nuova riga (ho visual-line-modeattivato). Ciò rende difficile sfogliare e leggere i titoli e spreca spazio sullo schermo verticale.

Penso che idealmente il tag verrebbe sempre visualizzato come allineato a destra, indipendentemente dal numero reale di spazi. C'è un modo per farlo? In caso contrario, esiste un altro modo per evitare lo spazio sprecato?


2
Che ne dici di nessun allineamento corretto ?: (setq org-tags-column 0) Vedi la stringa di documenti per detta variabile: M-x describe-variable RET org-tags-column RET- " La colonna in cui i tag devono essere rientrati in un titolo. Se questo numero è positivo, specifica la colonna. Se è negativo, significa che i tag devono essere allineati a quella colonna. Ad esempio, -80 funziona bene per una normale schermata di 80 caratteri. Quando 0, posiziona i tag direttamente dopo il testo del titolo, con solo uno spazio tra. "
elenco delle leggi

Grazie! Ho usato (setq org-tags-column 0)quale è meglio di niente, ma mi piacerebbe comunque avere una soluzione allineata a destra. Ho appena contrassegnato le mod per spostare questo, grazie per il suggerimento!

Risposte:


3

Ho lavorato su alcuni elisp per risolvere un problema simile a questo.

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

Questo dovrebbe riallineare la colonna dei tag in modo che sia sempre la dimensione perfetta.

Al momento non funziona correttamente se le larghezze della finestra divise orizzontalmente non sono uguali.


L'ho provato e sembra che questo codice assicuri che i tag siano sempre allineati a filo con il lato destro della finestra, ma non tocca i tag sulle linee avvolte. Supponendo che non mi sia sfuggito qualcosa, questo in realtà non risponde alla domanda, poiché quest'ultimo è ciò di cui l'OP stava chiedendo.
Scott Weldon,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.