org-mode masz ostatni nagłówek?

10

org-mode ma ostatni nagłówek w bieżącym drzewie.

Powiedz, to mój plik org, potok wskazuje kursor:

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

Chciałbym uruchomić polecenie i mieć teraz mój kursor:

* Top|
** Apple
** Banana
** Cherry|
* Middle
** Ape
** Bear
** Cat
Alex Baranosky
źródło
2
Ostatni nagłówek w pliku lub bieżące drzewo?
Zavior
@Zavior Dobre pytanie. Wyjaśniłem oryginalne pytanie.
Alex Baranosky,

Odpowiedzi:

9

W rzeczywistości istnieje org-end-of-subtreefunkcja, ale nie jest ona interaktywna. Możesz po prostu zdefiniować własne polecenie:

(defun goto-last-heading ()
  (interactive)
  (org-end-of-subtree))
MonsieurBanana
źródło
5

Oto polecenie, oparte na odpowiedzi @ itsjeyd, które jest odporne na wielkość liter na krawędzi wymienionych w komentarzu do tej odpowiedzi (to znaczy, kiedy jesteś na ostatnim nagłówku / poddrzewie):

(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
źródło
4

Nie wydaje mi się, żeby istniało w tym wbudowane polecenie, ale możesz je łatwo zdefiniować:

(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

I powiąż go z wybraną sekwencją klawiszy poprzez:

(define-key org-mode-map (kbd "C-c g") 'org-goto-last-heading)
itsjeyd
źródło
to miło, dziękuję za dzielenie się, ale może muszę wyjaśnić moje pytanie. To, czego naprawdę chcę, to przejść do końca bieżącego drzewa ...
Alex Baranosky,
@AlexBaranosky Tak, nie było to jasne ze sposobu, w jaki pierwotnie sformułowałeś pytanie. Daj mi
chwilę
@AlexBaranosky OK, powinno to zrobić. Dziękujemy za wyjaśnienie swoich wymagań!
itsjeyd
Sugeruję, aby nie używać C-c lwiązania. Jest to sugerowane wiązanie trybu org, org-store-linkponieważ jest ono bardzo ściśle powiązane z org-insert-link( C-c C-l).
Kaushal Modi
@kaushalmodi Tak, dziękuję. Poprawiłem swoją odpowiedź.
itsjeyd