冰柱'sicicle-buffer
没有考虑调用它的当前缓冲区。
我该如何禁用此功能?
答案1
好的,根据你的评论回复,我现在明白了。原因是这icicle-buffer
是替换(在冰柱模式)用于switch-to-buffer
(C-x b
),这将排除当前缓冲区作为候选。这个想法是,你想“切换到不同的缓冲区,其内容包含正则表达式匹配“正如文档字符串的第一行所说的那样。
如果有实际用例,那么不允许将当前缓冲区作为候选对象很容易成为可选的。请帮我理解用例。为什么您要“切换”到同一个缓冲区,即什么也不做?我想您的答案与使用内容搜索功能有关,但请稍微解释一下。这个想法是不是意味着您除了找出当前缓冲区的内容是否与某个模式或模式匹配之外不想做任何事情(例如,更改缓冲区)?
如果是这样,那么为什么不直接使用搜索呢?请记住,icicle-buffer
它不会向您显示它找到的任何匹配项。它只是寻找一个匹配项,如果有匹配项,则缓冲区名称仍为候选。如果没有匹配项,则将缓冲区名称从候选项中删除。
我想知道的是,为什么您希望当前缓冲区成为这里的候选对象。为什么不直接使用冰柱搜索或者简单的 Isearch,如果您想知道当前缓冲区的内容是否匹配某些模式?
我猜想,您的用例可能涉及想要查看所有内容与模式匹配的缓冲区的名称,并且根据该集合,可能切换到一个缓冲区或可能留在当前缓冲区中。是这样的吗?如果不将当前缓冲区保留为候选缓冲区,您就无法通过相同的命令调用知道当前缓冲区是否是包含模式的缓冲区之一。要找出答案,您需要在单独的操作中搜索当前缓冲区。
但请让我知道您预期的用例。如果我看到实际用例,我很乐意考虑将其设为可选项。StackOverflow 不是为讨论而设计的,因此请随时给我发送电子邮件:M-x icicle-send-bug-report
。
为了测试您要求的行为,您可以自己修改代码。您需要做的就是icicle-buffer
在文件中注释掉 定义的这一部分icicle-cmd1.el
:
(icicle-bufflist (setq icicle-bufflist (delete icicle-orig-buff icicle-bufflist)))
(确保))
在代码中保留该 sexp 之后的。)这将防止删除当前缓冲区名称作为候选。
如果对内容搜索有疑惑icicle-buffer
,请阅读此内容“章节和诗句”文档的一部分,它用一般术语描述它,并将其与搜索等进行对比。