欢迎试用 blink-search

请教,如果我搜索文件名,blink-search非常快的定位到文件,如何快速的打开该文件所在的文件夹呢? 有时候是二进制文件,所以有这需求?

(kbd “C-j”) 'blink-search-parent)

图1,查询”azw3“文件,出现的时刻 按C-j 就直接进入图2的二进制编辑文件模式了。并没有打开文件所在的文件夹。

你要看你的全局按键是不是覆盖了ctrl j

C-j绑定的就是这个命令;使用M-x blink-search-parent还是打开文件,而不是打开文件夹。

github报issue吧,最近生病了,没有时间修复,等我康复后吧

抱歉,打扰了。 猫大保重!

blink-search-parent 这个函数没有问题, 只是你想在 history 后端打开文件所属的目录。

history 后端是一个特殊的后端, 把每次 blink-search 打开的后端和相关路径信息记录到 ~/.emacs.d/blink-search/history.txt 下。

当你在 blink-search 历史项中按 RET 按键, 其实是从 ~/.emacs.d/blink-search/history.txt 读取内容, 然后调用对应的 blink-search 后端和历史记录。

有点绕, 上面的逻辑需要认真阅读以理解。

如果你在 blink-search 历史记录中执行 blink-search-parent 命令时, blink-search 需要像 RET 按键那样重定向到对应后端的 parent 函数, 而这个功能是没有的。

我刚刚推送了

需要你先更新到 blink-search 最新版, 然后删除文件 ~/.emacs.d/blink-search/history.txt, 正常使用 blink-search 打开一些文件, 再在搜索历史按 C-j 就可以直接跳转到 "历史补全项对应后端的 parent 接口返回的值“, 比如 Find file 后端对应的parent接口就是跳转到文件所属的目录。

整体逻辑如果没有读懂没关系, 更新就好了。

1 个赞

@manateelazycat 猫大, 使用 “Common Directory” 这个后端查询, blink-search-common-directory 这个变量,默认值是 ((“HOME” “~/”)), 不会递归的查询这些目录下的子目录吗?我看显示的只是该目录下的。

对,目前只是一层目录搜索,因为我插件git是https的,我经常把代码开发的git ssh目录单独放,避免开发嗨了,没切分支,emacs挂了。

大佬你想怎么用哇?

感觉猫大的“一层目录”搜索策略是正确的。如果把 ~ 设为common directory, 搜索范围太大了。 昨天我改了下python代码里blink-search-common-directory,递归搜索,然后执行搜索时,emacs就不动了,可能工作量太大了。 (有可能这个递归搜索我改的代码不对 :grinning:

合适的流程还是: 先dired到某个文件夹,然后再执行blink-search搜索

1 个赞