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包可以做你想做的事情。在开始调用组织概览时,普通组织稀疏树本身始终显示一级标题。我的示例显示了一种可能的解决方法,只需将取消隐藏的父部件放在一边即可执行您想要的操作。