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

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

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

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)

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
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.