Existe-t-il un moyen de faire en sorte que les balises fonctionnent correctement avec le retour à la ligne en mode org emacs?

9

Si le tampon est trop étroit, si je crée une balise pour un en-tête, la quantité d'espaces avant la balise fait que la balise passe la fin de la ligne sur une nouvelle ligne (j'ai visual-line-modeactivé). Cela rend difficile de parcourir et de lire les gros titres, et gaspille les écrans verticaux.

Je pense que l'idéal serait que le tag soit toujours aligné à droite, quel que soit le nombre réel d'espaces. Y-a-t-il un moyen de faire ça? Sinon, existe-t-il un autre moyen d'éviter l'espace perdu?

avv
la source
2
Que diriez-vous de l'absence d'alignement à droite?: (setq org-tags-column 0) Voir la chaîne de documentation pour ladite variable: M-x describe-variable RET org-tags-column RET- " La colonne à laquelle les balises doivent être mises en retrait dans un titre. Si ce nombre est positif, il spécifie la colonne. S'il est négatif, il signifie que les balises doivent être parfaitement alignées sur cette colonne. Par exemple, -80 fonctionne bien pour un écran normal de 80 caractères. Lorsque 0, placez les balises directement après le texte du titre, avec un seul espace entre les deux. "
lawlist
Merci! J'utilise (setq org-tags-column 0)ce qui est mieux que rien, mais j'aimerais toujours avoir une solution alignée à droite. Je viens de signaler les mods pour déplacer cela, merci pour la suggestion!

Réponses:

3

J'ai travaillé sur certains éléments pour résoudre un problème similaire à celui-ci.

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

Cela devrait réaligner la colonne des balises afin qu'elle soit toujours de la taille parfaite.

Pour le moment, cela ne fonctionne pas correctement si les largeurs de fenêtres divisées horizontalement ne sont pas égales.

nounou
la source
J'ai essayé cela et il semble que ce code garantit que les balises sont toujours alignées au ras du côté droit de la fenêtre, mais ne touche pas les balises sur les lignes enveloppées. En supposant que je n'ai pas raté quelque chose, cela ne répond pas vraiment à la question, car c'est cette dernière que le PO demandait.
Scott Weldon