Gibt es eine Möglichkeit, Tags mit Zeilenumbruch im Emacs-Organisationsmodus gut funktionieren zu lassen?


9

Wenn der Puffer zu eng ist und ich ein Tag für eine Überschrift erstelle, bewirkt die Menge an Leerzeichen vor dem Tag, dass das Tag über das Zeilenende hinaus in eine neue Zeile umgebrochen wird (ich habe es visual-line-modeaktiviert). Dies macht es schwierig, die Überschriften zu überfliegen und zu lesen, und verschwendet vertikale Bildschirmfläche.

Ich denke, im Idealfall wird das Tag immer als rechtsbündig angezeigt, unabhängig von der tatsächlichen Anzahl der Leerzeichen. Gibt es eine Möglichkeit, das zu tun? Wenn nicht, gibt es eine andere Möglichkeit, den verschwendeten Platz zu vermeiden?


2
Wie wäre es überhaupt mit keiner richtigen Ausrichtung?: (setq org-tags-column 0) Siehe die Dokumentzeichenfolge für diese Variable: M-x describe-variable RET org-tags-column RET- " Die Spalte, in die Tags in einer Überschrift eingerückt werden sollen. Wenn diese Zahl positiv ist, gibt sie die Spalte an. Wenn sie negativ ist, ist sie es bedeutet, dass die Tags direkt in dieser Spalte angezeigt werden sollten. Beispielsweise funktioniert -80 gut für einen normalen Bildschirm mit 80 Zeichen. Wenn 0, platzieren Sie Tags direkt nach dem Überschriftentext mit nur einem Leerzeichen dazwischen. "
lawlist

Vielen Dank! Ich habe verwendet, (setq org-tags-column 0)was besser als nichts ist, aber ich hätte immer noch gerne eine richtig ausgerichtete Lösung. Ich habe gerade für Mods markiert, um dies zu verschieben, danke für den Vorschlag!

Antworten:


3

Ich habe an einem Elisp gearbeitet, um ein ähnliches Problem zu lösen.

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

Dadurch sollte die Tags-Spalte neu ausgerichtet werden, damit sie immer die perfekte Größe hat.

Im Moment funktioniert es nicht richtig, wenn die horizontal geteilten Fensterbreiten nicht gleich sind.


Versucht dies, und es scheint, dass dieser Code sicherstellt, dass die Tags immer bündig mit der rechten Seite des Fensters ausgerichtet sind, aber Tags in umbrochenen Zeilen nicht berühren. Vorausgesetzt, ich habe etwas nicht verpasst, beantwortet dies die Frage nicht wirklich, da letzteres das ist, worüber das OP gefragt hat.
Scott Weldon
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.