Emacs 窄缓冲区,使用组织匹配稀疏树?

Emacs 窄缓冲区,使用组织匹配稀疏树?,emacs,tags,elisp,org-mode,Emacs,Tags,Elisp,Org Mode,我想在组织模式下过滤缓冲区,只过滤那些与特定标记匹配的标题 我尝试了C-C/,然后是tag1和tag2。但是Emacs没有缩小缓冲区,而是突出显示每个标题旁边的星号,这些标题都有这些标记 我如何改变这一点,以便Emacs将缓冲区缩小到匹配的标题 谢谢 原始海报使用的搜索regexp可能不正确。org occure用于设置高亮显示结果边界的子函数非常简单--(while(re-search forward regexp nil t)…匹配模式的开始和结束确定高亮显示区域的边界,即(匹配开始0),和

我想在组织模式下过滤缓冲区,只过滤那些与特定标记匹配的标题

我尝试了
C-C/
,然后是
tag1和tag2
。但是Emacs没有缩小缓冲区,而是突出显示每个标题旁边的星号,这些标题都有这些标记

我如何改变这一点,以便Emacs将缓冲区缩小到匹配的标题


谢谢

原始海报使用的搜索regexp可能不正确。org occure用于设置高亮显示结果边界的子函数非常简单--
(while(re-search forward regexp nil t)…
匹配模式的开始和结束确定高亮显示区域的边界,即
(匹配开始0)
,和
(匹配结束0)

要搜索包含其中一个或两个标记的标题,当交互调用
org-occure
时,将使用regexp
:tag1:\\\\\:tag2:
——即仅一个反斜杠和管道。当以非交互方式使用“组织发生”时,需要两(2)个反斜杠和一个管道,例如,
(组织发生):tag1:\\\\\:tag2:”

当查找按特定顺序排列在一起的两个标记时,regexp如下所示:
:tag1:tag2:

org occure的默认行为是折叠所有内容,然后仅展开匹配的结果——以前匹配的结果除外,除非参数
keep previous
为非nil。如果缓冲区看起来完全展开(使用
org-occure
进行搜索后),则使用的regexp可能与所有内容都匹配

检查并验证是否正在使用当前版本的
org mode
M-x org version RET
,也是谨慎的做法


使用标签
:lasc:



(来源:)

执行
C-C/m tag1和tag2
可以满足您的要求——除了级别1标题(这些标题总是可见的,即使它们不包含有用的条目;但是级别2+条目只有在符合您的要求时才可见)


例如,这与
C-C/t
的工作方式相同(所有TODO都在当前缓冲区中)。

谢谢。正则表达式并不是真正的问题。我想做的是完全隐藏与我的搜索条件不匹配的任何标题(与我们能够将缓冲区缩小到特定子树的方式相同)。您可能有兴趣查看
组织标签视图
组织搜索视图
的交互功能,这两个视图都生成一个只包含查询结果的缓冲区,而不需要折叠或隐藏任何内容
OrgOccess
没有完全隐藏搜索结果之外的所有内容的规定(但它几乎隐藏了所有内容)——这将是未来实现的自定义功能。我发布了一个示例,说明了
OrgOccess
应该是什么样子,以防您看到不同的内容。它几乎隐藏了所有东西,除了主标题。啊,观察得好!我想知道,这是否也可以定制为适用于顶级标题?他们被排除在外似乎很奇怪。。。?谢谢AFAICT,这将需要更改组织代码库。同时,如果你真的对当前的行为感到恼火,一个解决方法是将你的1级标题包装成一个“元1级”标题。。。这样,您当前的级别1将成为级别2部分,并将被隐藏;-)我认为从很棒的org-ql包可以做你想做的事情。在开始调用组织概览时,普通组织稀疏树本身始终显示一级标题。我的示例显示了一种可能的解决方法,只需将取消隐藏的父部件放在一边即可执行您想要的操作。