【问题标题】:Emacs Org-Mode: how to fold block without going to block header?Emacs Org-Mode:如何折叠块而不去块头?
【发布时间】:2011-12-22 17:28:46
【问题描述】:

我知道我可以通过按 TAB 键转到块标题并折叠/展开。 然而,假设我在一个有数百行的块内,我只想折叠 current 块,而不 不必去块头——在那里可以做到这一点的键盘快捷键?或者是否有一个 elisp 函数可以做到这一点,以便我可以将一些快捷方式绑定到该函数?

【问题讨论】:

    标签: emacs org-mode


    【解决方案1】:

    创建一个执行以下功能的键绑定:

    (defun zin/org-cycle-current-headline ()
      (interactive)
      (outline-previous-heading)
      (org-cycle))
    

    这将跳回到上一个标题,然后循环。由于标题已经打开,它将关闭它。它还将点放在标题的开头。

    如果您将两个命令包装在(save-excursion ) 中,它将保留该点,但这可能导致在省略号内输入信息而没有意识到。或者,您可以更改命令以调用非交互式表单:

    (defun zin/org-cycle-current-headline ()
      (interactive)
      (org-cycle-internal-local))
    

    这相当于上面的(save-excursion )

    【讨论】:

    • 谢谢,我把“C-c t”映射到上面第一个函数,效果很好。
    【解决方案2】:

    C-c C-p 将带您进入标题,TAB 将折叠。您可以为此创建一个键盘宏,或等效的 ELISP:

    (defun up-n-fold ()
      (interactive)
       (progn
         (outline-previous-visible-heading 1)
         (org-cycle)))
    

    编辑:将 C-c p 更正为 C-c C-p,如下面的许多人所述。谢谢!

    【讨论】:

    • C-c p(或任何C-c <char>)默认不应绑定到任何东西。这是为最终用户配置保留的,并且(至少在 Emacs 24 中)org-mode 似乎尊重这个约定。也许你应该检查一下你绑定了什么?
    • C-c C-p C-c C-n 现在并且一直是,AFAIK,绑定到轮廓-上一个-可见-标题和轮廓-下一个-可见-标题。我认为这是胡安乔的错字。
    【解决方案3】:

    我不确定这样的功能是否存在,但创建一个并不难。只需将以下击键替换为函数:C-M-r^*Entertab

    【讨论】:

    • 这样不行。 C-M-r 执行 isearch-backwards 不是正则表达式搜索,因此 ^ 不是行首。其次,你需要登上头条才能循环。
    • @JonathanLeech-Pepin:在我的 emacs 中,C-M-r 运行 isearch-backward-regexpisearch-backwards 由 C-r 运行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多