我想使用org-velocity作为导航大型.org
文件的主要方法,但有以下更改:
在org-velocity中运行搜索后,我希望缓冲区在我做出选择后自动缩小到该子树。
Org-velocity应该对整个文件进行搜索,即使缓冲区变窄也是如此。
对于第(1)部分,我认为这样的事情应该有效:
(add-hook 'org-follow-link-hook (lambda () (org-narrow-to-subtree)))
但这不是正确的勾手。不知道如何处理(2)。有任何想法吗?谢谢!
答案 0 :(得分:2)
我正在为问题的第(2)部分写一个部分答案,因为以下内容并不适合评论。请注意,我不使用org-velocity
。因此,以下内容尚未经过实际测试。
save-restriction
将当前缩小值保存到组织子树,widen
在搜索过程中暂时删除此缩小范围。要查看其确切的工作方式,请阅读函数save-restriction
和widen
的帮助,其中 Ch f 并查阅info Ch elisp
的kbd> i 以及“建议功能”部分。
(defadvice org-velocity (around search-all activate)
"Widen for search with org-velocity"
(save-restriction
(widen)
ad-do-it
))
答案 1 :(得分:1)
好的,我想我有一个完整的解决方案!
确保安装了此org-velocity分支:
打开你的org-velocity.el文件并用以下代码替换第763-765行:
(progn
(with-current-buffer (org-velocity-match-buffer)
(kill-buffer-and-window))
(org-narrow-to-subtree)
(show-all))))))
附加代码告诉org-velocity首先将缓冲区缩小到选定的子树,然后扩展该节点。
将此代码放在搜索路径中的某个位置(init.el,.emacs等)
(defadvice org-velocity (around search-all activate)
"Widen for search with org-velocity"
(widen)
ad-do-it)
就是这样!
谢谢托比亚斯,保罗和马图斯带我走过这个!!
小心,
- 亚当