:demand
也不行?
最简单的这样就可以了
(use-package snails
:load-path "[dir]"
:commands snails)
:demand
也不行?
最简单的这样就可以了
(use-package snails
:load-path "[dir]"
:commands snails)
commands 这个可以。我觉得主要可能是 load-path, 直接 quelpa 那种方式就不行。
问题解决了,谢谢
已经合并了你的补丁, Windows 的用户可以使用 everything 这个工具进行整个磁盘文件搜索了。
花了一个小时加了个 projectile backend…
candiate-do
这个 typo 问题condidates
typo08-06 20:23 更新:再花两个小时修 bug …
backend 多了在一个窗口里感觉东西越来越多,越来越乱呀
可以自定义 backend 来搜索
目测是 evil mode insert state 的锅,我切成 Emacs state 就好了
是的,我自己小改了下snails了代码。刚提交了个PR,不知道猫大会接受不
已经合并了,我完全不使用 evil 的, 已经有三个人给我提交 evil 相关的补丁了,而且大家的使用习惯还不一样。
如果还是众口难调的局面,我会考虑移除 evil 的代码,evil 的用户应该用 snails-mode-hook 的方法去配置 evil 相关的设置。
看到 snails 的第一眼,就想起 vscode 的 cmd+shift+p,而它在 vscode 中,经常被人称为神器!(我也是道听途说的,但感觉很靠谱… )
回到问题,「越来越乱」的问题其实可以非常容易得到解决。按照目前设计,只需要自定义 backend 集合,可以较好地解决 backend 过多的问题,懒人可参考:.emacs.d/init-snails.el at master · cosven/.emacs.d · GitHub
长远来看,可以有另外一个发展思路:参考 vscode 的功能设计。解析 input 来自动过滤 backend。像 vscode 一样,加个 >
前缀就只搜索 command,不加前缀就只搜索 buffer。我觉得 snails 也完全可以采用这种思路,实现也非常简单,判断一下字符串前缀就可以。用户体验上还可以向后兼容,简直 perfect。
想搞复杂点的话,可以自己对 input 进行词法分析,到时干啥都行…(不过我感觉这种思路可能性应该很小,毕竟没必要搞这么复杂)
非常看好 snails!毕竟同为操作系统的 macOS 上有 alfred/spotlight;Linux 上也有 albert 等。KDE 有 alt-f2;GNOME 也有全局搜索。嗯,我们 Emacs 操作系统以后也有 snails 啦 !
你的插件代码已经合并了。
关于你说的前缀问题,我觉得非常好,这样可以默认不用那么多后端,用户可以自定义的进行搜索。
比如:
不同的前缀搜索不同的后端,如果前缀是!: 就搜索所有后端
我觉得前缀越简洁越好,尽量用符号
从可用性(UX)的角度,同意越简洁越好的想法;也同意尽量用符号,并且是那种表意明显,有一定使用历史的符号。比如 vscode 的 >
,我觉得就挺好的。
另外,我觉得这样的工具,它的用户体验其实非常重要,比如性能就非常关键。
我又去体验了一下 vscode 的功能设计:
>
前缀,按 cmd+p 不带前缀>
前缀搜 Command,类似 Emacs 的 Alt-x,不带前缀搜文件(包括项目文件和 recentf)@
→ symbol:
→ goto line根据自己个人过去的使用经验,我有以下几个看法(ps:根据个人能力和时间,我预计自己贡献的代码会比较少,所以这里提的看法仅仅是一个看法。我尽量给自己的看法都加上自己的理由):
{前缀: backend group}
这个对应关系,snails 只管最基本的前缀小结一下
说这么多废话的原因是我自己对这样一个工具抱有很美好的幻想,(alfred 应该是这类工具中比较成功的一个了)(当然这不是要求开发者为我写功能啥的),而我认为这类工具尤其重要的几点有:
嗯,我的废话(个人想法往往很局限,并且可能被之前经验所束缚…)告一段落…
vscode用的符号,但字母按起来更快,类似于alfred
是比较像,但是设计理念和目标差别很大。snails 只着重在搜索功能上,vscode 的更像 minibuffer,什么都可以从这个入口进入,搜索只是其中一小部分功能。你所说的长远思路,怕是没那么简单啊,得包罗万象,不如用 ivy-posframe 或者 minibuffer 了。我估计这不是懒猫的初衷。
我倒是觉得,应该考虑后缀,先搜出所有的,觉得看不到需要的,再加个后缀限制
也可以像magit那样加搜索条件
我当时看代码,上一个版本是会检查 evil 的默认 state 的,但是不知道为什么又删了。
本来也想研究一下怎么改一下代码,可以通过配置设置,奈何最近很忙。。。
看了一下加的判断,感觉这两个判断好生硬啊
(if (fboundp 'evil-insert)
(evil-insert 1))
(if (fboundp 'evil-emacs-state)
(evil-emacs-state))
就像 PR 说的,我也感觉通过配置,或者 hook 处理可能更好一些