org-mode gehe zur letzten Überschrift?

10

org-mode gehe zur letzten Überschrift im aktuellen Baum.

Angenommen, dies ist meine Organisationsdatei. Pipe zeigt den Cursor an:

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

Ich möchte einen Befehl ausführen und meinen Cursor jetzt hier haben:

* Top|
** Apple
** Banana
** Cherry|
* Middle
** Ape
** Bear
** Cat
Alex Baranosky
quelle
2
Letzte Überschrift in der Datei oder der aktuelle Baum?
Zavior
@Zavior Gute Frage. Ich habe die ursprüngliche Frage geklärt.
Alex Baranosky

Antworten:

9

Es gibt tatsächlich eine org-end-of-subtreeFunktion, die jedoch nicht interaktiv ist. Sie können einfach Ihren eigenen Befehl definieren:

(defun goto-last-heading ()
  (interactive)
  (org-end-of-subtree))
Monsieur Banana
quelle
5

Hier ist ein Befehl, der auf der Antwort von @ itsjeyd basiert und robust gegenüber dem Randfall ist, der im Kommentar zu dieser Antwort aufgeführt ist (dh wenn Sie sich in der letzten Überschrift / im letzten Teilbaum befinden):

(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
quelle
4

Ich glaube nicht, dass es dafür einen eingebauten Befehl gibt, aber Sie können einen einfach selbst definieren:

(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

Und binden Sie es an eine Schlüsselsequenz Ihrer Wahl über:

(define-key org-mode-map (kbd "C-c g") 'org-goto-last-heading)
itsjeyd
quelle
Das ist schön, danke fürs Teilen, aber vielleicht muss ich meine Frage klarer stellen. Was ich wirklich will, ist, bis zum Ende des aktuellen Baumes zu gehen ...
Alex Baranosky
@AlexBaranosky Ja, das war nicht klar, wie Sie die Frage ursprünglich formuliert haben. Geben Sie mir eine Sekunde, um den Code anzupassen ...
itsjeyd
@ AlexBaranosky OK, das sollte es tun. Vielen Dank für die Klärung Ihrer Anforderungen!
Itsjeyd
Ich würde vorschlagen, keine C-c lBindung zu verwenden. Es ist der Org-Modus, für den eine Bindung vorgeschlagen wird, org-store-linkda er sehr eng mit org-insert-link( C-c C-l) verwandt ist.
Kaushal Modi
@kaushalmodi Ja, danke. Ich habe meine Antwort angepasst.
Itsjeyd