org-mode goto last cap?

10

org-mode goto dernier titre dans l'arborescence actuelle.

Dites qu'il s'agit de mon fichier org, le tube indique le curseur:

* Top|
** Apple
** Banana
** Cherry
* Middle
** Ape
** Bear
** Cat

Je voudrais exécuter une commande et avoir mon curseur ici:

* Top|
** Apple
** Banana
** Cherry|
* Middle
** Ape
** Bear
** Cat
Alex Baranosky
la source
2
Dernière rubrique du fichier ou arborescence actuelle?
Zavior
@Zavior Bonne question. J'ai clarifié la question d'origine.
Alex Baranosky

Réponses:

9

Il y a en fait une org-end-of-subtreefonction, mais ce n'est pas interactif. Vous pouvez simplement définir votre propre commande:

(defun goto-last-heading ()
  (interactive)
  (org-end-of-subtree))
MonsieurBanana
la source
5

Voici une commande, basée sur la réponse de @ itsjeyd, qui est robuste au cas de bord répertorié dans le commentaire de cette réponse (c'est-à-dire lorsque vous êtes sur le dernier en-tête / sous-arbre):

(defun org-end-of-subtree ()
  (interactive)
  (let ((org-special-ctrl-a/e t))
    (if (condition-case nil
            (outline-forward-same-level 1)
          (error t))
        (progn
          (goto-char (point-max))
          (outline-back-to-heading))
      (outline-previous-visible-heading 1))
    (org-end-of-line 1)))
Dan
la source
4

Je ne pense pas qu'il existe une commande intégrée pour cela, mais vous pouvez facilement en définir une vous-même:

(defun org-goto-last-heading-in-tree ()
  (interactive)
  (org-forward-heading-same-level 1)     ; 1. Move to next tree
  (outline-previous-visible-heading 1)   ; 2. Move to last heading in previous tree
  (let ((org-special-ctrl-a/e t))        ; 3. Ignore tags when
    (org-end-of-line)))                  ;    moving to the end of the line

Et liez-le à une séquence de touches de votre choix via:

(define-key org-mode-map (kbd "C-c g") 'org-goto-last-heading)
itsjeyd
la source
c'est bien, merci pour le partage, mais peut-être que je dois être plus clair dans ma question. Ce que je veux vraiment, c'est aller au bout de l'arbre actuel ...
Alex Baranosky
@AlexBaranosky Oui, ce n'était pas clair d'après la façon dont vous avez formulé la question à l'origine. Donnez-moi une seconde pour ajuster le code ...
itsjeyd
@AlexBaranosky OK, ça devrait le faire. Merci d'avoir clarifié vos besoins!
itsjeyd
Je suggère de ne pas utiliser de C-c lreliure. C'est la liaison suggérée pour le mode org org-store-linkcar elle est très étroitement liée à org-insert-link( C-c C-l).
Kaushal Modi
@kaushalmodi Oui, merci. J'ai ajusté ma réponse.
itsjeyd