如何复制Org-Mode中标题下的内容(不含标题本身)
如何在Org-Mode中仅复制标题下的内容(不含标题)
我之前也碰到过一模一样的需求,不想连标题一起复制,只想要下面的正文内容,总结了几个实用的解决办法,你可以按需选择:
一、自定义Elisp函数(最推荐,一键搞定)
直接写个小函数绑定快捷键,以后用起来超方便。把下面的代码加到你的Emacs配置文件(比如init.el)里:
(defun org-copy-subtree-content-only () "Copy the content of the current Org subtree, excluding the heading itself." (interactive) (save-excursion (org-back-to-heading) (next-line) (let ((beg (point))) (org-end-of-subtree) (kill-ring-save beg (point)) (message "Copied subtree content to kill ring!")))) ;; 可以绑定一个顺手的快捷键,比如C-c C-x c (global-set-key (kbd "C-c C-x c") 'org-copy-subtree-content-only)
用法很简单:把光标放在目标标题(比如你的My Sample Heading 1)的任意位置,按下绑定的快捷键,标题下的Sample text line 1和Sample text line 2就直接被复制到kill ring里了。
二、用内置命令组合(无需修改配置)
如果不想改配置,用现成的Emacs内置命令组合也能实现:
- 先把光标移到目标标题上,按
C-x n s(org-narrow-to-subtree),只显示当前子树的内容 - 按
C-a跳到行首,再按C-n跳到标题下的第一行 - 按
C-SPC设置标记,再按C-x C-e(end-of-buffer)选中从当前行到子树末尾的所有内容 - 按
M-w(kill-ring-save)把选中内容复制到kill ring - 最后按
C-x n w(widen)取消窄化,恢复完整文档视图
三、手动选中(临时应急用)
如果只是偶尔操作一次,手动选中也挺快:
- 把光标移到标题下第一行的开头
- 按住
Shift键,用Down Arrow或者PageDown选中所有需要的内容(停在下一个标题前就行) - 按
M-w完成复制
内容的提问来源于stack exchange,提问作者Oscar
相关产品推荐
相关产品推荐

