Snails 6.0发布,现在支持像VSCode那样按照前缀进行搜索了


#1

今天早上新加了一个补丁, 发布了 Snails 最新版本 6.0

按前缀来搜索不同的内容

Snails 6.0 的主要更新是支持像VSCode那样根据前缀来搜索不同的后端内容。

  • Snails启动后,默认在标签分组、缓存列表、最近访问文件、书签这些最高频的后端中进行搜索,以快速切换正在使用的文件
  • 当输入中包含前缀 > 时,Snails搜索所有可以执行的命令
  • 当输入中包含前缀 @ 时,Snails只在函数或变量定义中进行搜索,方便快速进行定义跳转
  • 当输入中包含前缀 # 时,Snails使用 ripgrep 搜索当前文件的内容
  • 当输入中包含前缀 ! 时,Snails使用 ripgrep 搜索当前项目里所有文件的内容
  • 当输入中包含前缀 ? 时,Snails使用 fd、projectile、mdfind、everything 等后端进行全局文件名搜索,以快速找到并打开磁盘中的文件

这样设计的作用是,Snails默认只搜索打开的文件,符合99%的默认使用习惯,当用户需要特殊搜索,比如函数定义的时候,可以在输入的内容加上前缀 ,使得Snails只在用户指定的后端中进行定向搜索。

通过这样的设计,可以同时满足绝大多数用户的使用习惯,又不会因为默认加入太多的后端导致搜索信息过多的问题,最终提升用户的搜索效率。

自定义搜索后端

当然,如果你不喜欢前缀的方案,可以通过自定义后端列表的方式进行自定义搜索:

(snails '(snails-backend-buffer snails-backend-current-buffer))

比如按照上面的示例,Snails只会在缓存列表和当前文件内容这两个后端中进行搜索,并且忽略用户输入的任何前缀,这种自定义后端的搜索体验和Helm的体验保持一致。

如果你只自定义一种后端,搜索体验将和Ivy保持一致。

That’s all, enjoy!


Snails超级快的模糊搜索框架
#2

至从加了前缀,现在更新到最新版本 https://github.com/manateelazycat/snails/commit/f7ad968ca019d50759315f34277f072ae0493683

可以直接用前缀 > 搜索命令了。


#3

这个补丁可以在命令后面显示快捷键,你搜索快捷键的时候,往往是你忘记快捷键的时候,多搜索几次命令,就记住按键了。


#4

如果能把org融合进来就好了

再把yasnippet也放进去


#5

PR,请 紫薯布丁


#6

今天加了一个补丁 https://github.com/manateelazycat/snails/commit/b99a6d28245a9e1a685bbd2160f56b751aca3fd3

现在 Snails的 snails-backend-rg 后端可以支持自定义目录了。

举个例子:

  1. 大部分时候我们只用搜索当前项目的文件内容,所以直接前缀 ! 加上你要搜索的内容就可以了
  2. 但是有时候偶尔想搜索一下 org 文件的笔记,可以输入 !keyword@/Users/andy/org 就可以在 /Users/andy/org 目录中搜索 keyword 了。

#7

imenu 的搜索没有详细的上下文的? 只有一些 Functions, Section 这样的提示。


#8

有文件样本吗?


#9

样本就是 snails-backend-imenu.el


#10

前缀搜索的改动引入了一个问题,导致第一次启动会报错。 https://github.com/manateelazycat/snails/commit/235b22d29a7061ee3bc8a9b28ffbac6677b3a8d8 已经修复


#11

emacs -Q对比测试一下,看看是不是你自己的配置有问题。

如果 emacs -Q 都有问题,请写下详细的重现步骤,我这边没法重现你说的问题。


#12

m杠x imenu杠list 显示的是什么 你改过imenu的配置吗 还是别人替你改了 你不知道


#13

emacs -Q 没问题,看来又是 doom 的问题。我仔细查了下,找到问题了, doom 偷偷给 emacs-lisp mode 加了一个 hook, 里面设置了 imenu-generic-expression 。去掉就好了。。。