组织模式转到最后一个标题?


10

org-mode goto当前树中的最后一个标题。

说这是我的组织文件,管道指示光标:

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

我想运行一个命令,现在将光标放在这里:

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

2
文件的最后标题还是当前的树?
Zavior 2014年

@Zavior好问题。我已经澄清了原始问题。
Alex Baranosky 2014年

Answers:


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 2014年

@AlexBaranosky是的,从您最初对问题的措辞来看,还不清楚。给我一点时间来调整代码...
itsjeyd 2014年

@AlexBaranosky好的,应该这样做。感谢您澄清您的要求!
itsjeyd 2014年

我建议不要使用C-c l绑定。建议使用org模式进行绑定,org-store-link因为它与org-insert-linkC-c C-l)非常相关。
2014年

@kaushalmodi是的,谢谢。我调整了答案。
itsjeyd 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.