Snails超级快的模糊搜索框架

windows 下面用 everything 搜索挺方便的,仿照 fd 之类的写了个 snails-backend-everything 的客户端,结果输入 “emacs-” 显示空白。

命令行 es emacs- 能返回好多东西,(executable-find es) 也没问题。 帮看看哪里有问题?

;;; Require
(require 'snails-core)

;;;Code:

(snails-create-async-backend
 :name
 "EVERYTHING"

 :build-command
 (lambda (input)
   (when (and (executable-find "es")
              (> (length input) 5))
     (list "es" input)))
 
 :candidate-filter
 (lambda (candidate-list)
   (let (candidates)
     (dolist (candidate candidate-list)
       (snails-add-candiate 'candidates (snails-wrap-file-icon candidate) candidate))
     candidates))

 :candiate-do
 (lambda (candidate)
   (find-file candidate)))

(provide 'snails-backend-everything)

你把你命令行的命令和显示结果的截图发给我

snails.el里面要加一下你的后端,应该就可以了。

@cireu @manateelazycat 建议对比下 prescient。这几天试用下来发现体感比 flx 好。

最新版用了渲染队列在固定时间渲染,而不是后端一有数据就渲染,大幅提升多个搜索后端时的渲染性能。

比之前的版本更快了。

确实比之前快了

今天基于 ripgrep 构建了一个搜索当前buffer的后端:Add current buffer backend. · manateelazycat/snails@21d65ab · GitHub

不管文件是否超级大,都可以秒搜当前buffer的内容。

这个要比 isearch 的性能好很多, 特别是搜索 org 这种大文件的时候。

snails目前还不支持minibuffer的completing-read。一般eval的时候进行补全用什么呢。

snails 就是不想给 minibuffer 给干扰才单独设计的 Input buffer 补全这种可以后面慢慢的加

M-x功能有啥后端吗

最新版让首次启动后端延迟50毫秒加载,把启动时间从 1~2秒 减少到瞬间启动。

2 个赞

双屏的问题,刚才社区一位大佬发了一个补丁修复了双拼的问题,你试一下最新版?

1 个赞

everything 这个还是没办法出来。

你在你的插件各处加一下 message, 看看各个条件是什么?

我感觉你的插件在什么地方卡住了, message 可以帮助你定位问题,我没有 windows

双屏显示正常了,谢谢!

找到问题了,默认文件头开了 lexical-binding, 去掉就好了。。。。

可以提交一个pr,哈哈哈哈

与楼上一样,emacs-mac ,无内容:

Screen Shot 2019-07-30 at 6.23.59 PM.png

use-package 好像不行,需要指定 load-path 然后 require。

THX, 确实如此,但是为什么呢?