Emacs 使用组织速度缩小到子树

Emacs 使用组织速度缩小到子树,emacs,elisp,org-mode,Emacs,Elisp,Org Mode,我想使用org velocity作为浏览大型.org文件的主要方式,但有以下更改: 在OrgVelocity中运行搜索后,我希望一旦我做出选择,缓冲区会自动缩小到该子树 OrgVelocity应该对整个文件运行搜索,即使缓冲区缩小了 对于第(1)部分,我认为这样做应该有效: (添加hook'org follow link hook(lambda()(org窄到子树))) 但这不是正确的钩子。不知道如何接近(2)。有什么想法吗?谢谢 我正在为问题的第(2)部分写一个部分答案,因为下面的评论不太合适

我想使用org velocity作为浏览大型
.org
文件的主要方式,但有以下更改:

  • 在OrgVelocity中运行搜索后,我希望一旦我做出选择,缓冲区会自动缩小到该子树

  • OrgVelocity应该对整个文件运行搜索,即使缓冲区缩小了

  • 对于第(1)部分,我认为这样做应该有效:

    (添加hook'org follow link hook(lambda()(org窄到子树)))


    但这不是正确的钩子。不知道如何接近(2)。有什么想法吗?谢谢

    我正在为问题的第(2)部分写一个部分答案,因为下面的评论不太合适。请注意,我没有使用
    org-velocity
    。因此,以下内容并没有经过真正的测试。
    save restriction
    将当前缩小保存到组织子树,并在搜索过程中临时删除此缩小。要了解其具体工作原理,请阅读有关使用C-h f的功能
    保存限制
    加宽
    的帮助,并查阅
    elisp
    的信息C-h i以及“建议功能”部分

    (defadvice组织速度(搜索全部激活)
    “使用组织速度扩大搜索范围”
    (保留限制)
    (加宽)
    做它
    ))
    
    我正在为问题的第(2)部分写一个部分答案,因为以下内容与评论不太相符。请注意,我没有使用
    org-velocity
    。因此,以下内容并没有经过真正的测试。
    save restriction
    将当前缩小保存到组织子树,并在搜索过程中临时删除此缩小。要了解其具体工作原理,请阅读有关使用C-h f的功能
    保存限制
    加宽
    的帮助,并查阅
    elisp
    的信息C-h i以及“建议功能”部分

    (defadvice组织速度(搜索全部激活)
    “使用组织速度扩大搜索范围”
    (保留限制)
    (加宽)
    做它
    ))
    
    好的,我想我有一个完整的解决方案

  • 请确保已安装此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))))))
    
    附加的代码告诉OrgVelocity首先将缓冲区缩小到所选子树,然后扩展该节点

  • 将此代码放在搜索路径的某个位置(init.el、.emacs等)

    就这样

  • 谢谢托拜厄斯、保罗和马修带我走过这段路

    保重,


    -亚当

    好吧,我想我有一个完整的解决方案

  • 请确保已安装此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))))))
    
    附加的代码告诉OrgVelocity首先将缓冲区缩小到所选子树,然后扩展该节点

  • 将此代码放在搜索路径的某个位置(init.el、.emacs等)

    就这样

  • 谢谢托拜厄斯、保罗和马修带我走过这段路

    保重,


    -Adam

    对于(2)您可以使用带有
    保存限制
    加宽
    的环绕建议。谢谢你的评论!您能详细说明一下吗?对于(2)您可以使用带有
    save restriction
    extended
    .Tobias的环绕建议。谢谢你的评论!你能详细解释一下吗?太棒了!谢谢托拜厄斯!!不过我要做一个改变:删除保存限制。否则,OrgVelocity将无法在当前节点之外导航(假设文档开始的范围缩小到这一点)。@Adam您尝试过吗?对我来说,它看起来不错。你得到一个匹配的缓冲区,你可以选择一个在匹配点上得到一个新的缓冲区。如果您完成了,请按C-C-C,并从哪里开始(包括旧的限制)。我不知道这是否是通缉犯的行为。是的,我试过了。这样做:打开一个组织文件,缩小到标题100,然后C-C v运行org velocity并搜索另一个标题,比如标题32。Org velocity发现了这一点,因此您点击[RET]。但如果保留了“保存限制”,则该功能将阻止您导航到航向100以外的位置(因为您之前已将航向缩小到这一点)。因此,我所做的就是使用你的函数并删除“保存限制”,它工作得很好。另外,你可能正在使用不同版本的OrgVelocity。这就是我用的:太棒了!谢谢托拜厄斯!!不过我要做一个改变:删除保存限制。否则,OrgVelocity将无法在当前节点之外导航(假设文档开始的范围缩小到这一点)。@Adam您尝试过吗?对我来说,它看起来不错。你得到一个匹配的缓冲区,你可以选择一个在匹配点上得到一个新的缓冲区。如果您完成了,请按C-C-C,并从哪里开始(包括旧的限制)。我不知道这是否是通缉犯的行为。是的,我试过了。这样做:打开一个组织文件,缩小到标题100,然后C-C v运行org velocity并搜索另一个标题,比如标题32。Org velocity发现了这一点,因此您点击[RET]。但如果保留了“保存限制”,则该功能将阻止您导航到航向100以外的位置(因为您之前已将航向缩小到这一点)。因此,我所做的就是使用你的函数并删除“保存限制”,它工作得很好。另外,你可能正在使用不同版本的OrgVelocity。这是我正在使用的: