org-mode goto最後の見出し?


10

org-mode goto現在のツリーの最後の見出し。

これは私の組織ファイルです、パイプはカーソルを示します:

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

コマンドを実行して、カーソルをここに置いておきます。

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

2
ファイルの最後の見出し、または現在のツリー?
ザビオール2014年

@ザビオール良い質問。元の質問を明確にしました。
Alex Baranosky 2014年

回答:


9

実際にはorg-end-of-subtree機能はありますが、インタラクティブではありません。独自のコマンドを定義するだけです。

(defun goto-last-heading ()
  (interactive)
  (org-end-of-subtree))

5

@itsjeydの回答に基づくコマンドは次のとおりです。これは、その回答のコメントにリストされているエッジケースに対して堅牢です(つまり、最後の見出し/サブツリーにいるとき)。

(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

これには組み込みのコマンドはないと思いますが、自分で簡単に定義できます。

(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

そしてそれをあなたが選んだキーシーケンスにバインドします:

(define-key org-mode-map (kbd "C-c g") 'org-goto-last-heading)

これは素晴らしいです。共有してくれてありがとうございます。でも、質問をもっと明確にする必要があるかもしれません。私が本当に望んでいるのは、現在のツリーの最後に移動することです...
Alex Baranosky 14年

@AlexBaranoskyはい、それはあなたが最初に質問を言った方法から明らかではありませんでした。コードを調整するために私に秒を与える...
itsjeyd

@AlexBaranosky OK、それでうまくいくはずです。要件を明確にしていただきありがとうございます。
itsjeyd 2014年

C-c lバインディングを使用しないことをお勧めします。()org-store-linkと非常に密接に関連しているため、これは組織モードで推奨されるバインディングです。org-insert-linkC-c C-l
Kaushal Modi 2014

@kaushalmodiはい、ありがとうございます。私は自分の答えを調整しました。
itsjeyd 2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.