在emacs的大纲模式下,仅复制(yank)可见文本

4
有时候我想从Emacs的大纲模式缓冲区中仅复制可见文本,而忽略隐藏的部分,但是我没有找到任何方法可以实现这个目标。当我使用M-w并将其粘贴到其他地方时,会复制所有文本,包括隐藏的部分。有人知道如何做到这一点吗?手册和谷歌都没有帮助到我。谢谢,Tom。

2021年更新:org-copy-visible可以直接使用,无需任何修改,并且还支持区域复制。 - HappyFace
1个回答

4

编辑: 根据下面的评论,Tom Faulhaber提供了以下解决方案:
https://gist.github.com/tomfaulhaber/519635

原始答案:

顺便说一句,org-mode 有 org-export-visible,并且派生自 outline-mode,因此如果没有其他解决方案,也许可以改编该代码?

还有一个在 outline-minor-mode 中对区域起作用的 M-x outline-headers-as-kill。 这也不是您想要的,但或许提供了另一种实现方法。


1
根据您的建议,我简化了org-export-visible函数并创建了outline-yank-visible。如果有人需要,代码在这里http://gist.github.com/519635。 - Tom Faulhaber
不错。该函数是复制而不是粘贴,也许“outline-copy-visible”会更合适? - phils
好的,我不太确定当时起的名字是怎么想的。我已经按照你在gist中的建议进行了更改。 - Tom Faulhaber
@TomFaulhaber 也许将您的精彩评论转化为答案是个好主意。我差点在您的评论中错过了这个答案! - student
@TomFaulhaber 太棒了。但是有没有可能调整一下,只复制选定的区域呢? - Leo Ufimtsev
1
2021年更新:org-copy-visible可以直接使用,而且还支持区域复制! - ajdev8

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接