在进行org文学编程时,如何快速折叠代码块?

目前的方法是把光标移动到 #+BEGIN_SRC这一行上,然后按TAB,才能折叠这一段代码块。

如果代码块已经较长了,那就有点麻烦(主要的麻烦在于“把光标移动到 #+BEGIN_SRC这一行”,虽然还是有快捷键 C-c M-b)。

有没有什么快捷的方式,使得当光标位于代码块内的任意位置时,都能快速地把代码块折叠起来? 另外有没有可能像Shift+Tab展开标题一样,循环展开/折叠文件内(或者当前小节内)的代码块?

C-c M-b TAB 也就算两个键,还嫌麻烦的话,换个键试试(比如 C-M-b TAB)。或者把这两步合并成一步,用键盘宏或者函数定义。

;; 键盘宏
(global-set-key (kbd "<f5>") (kbd "C-c M-b TAB"))

;; 函数定义
(defun my-org-code-block-fold ()
  (interactive)
  (call-interactively 'org-previous-block)
  (org-cycle))

另外,也可以在 #+BEGIN_SRC 那一行用通过鼠标点击来 fold/unfold,如果用图形界面的 Emacs 的话,应该是能做到的(默认并不行,这只是一个想法)。

6 个赞