Snails超级快的模糊搜索框架

exec-path-from-shell 的那个选项,前些时候已经 pr 并合并了。

https://github.com/manateelazycat/snails/pull/36

用straight down下来use-package加载会出错。。我down下来用:load-path就可以。。

recipe 里面加 :no-byte-compile t 就行。好像是编译成 elc 会有些问题.

默默问一句为什么不直接设置 snails-use-exec-path-from-shell(featurep 'cocoa) ?:dog: :dog:

就是想单独弄个变量能精确的控制要不要 exec-path-from-shell,代码里面本来就是在 (featurep 'cocoa) 的情况下再次判断的。你这么设置和 t 没区别。

如果在 Linux 中想要使用 exec-path-from-shell 时,只设置 snails-use-exec-path-from-shell 变量, 是不会使用 exec-path-from-shell 的, 至于为什么会有在 linux 使用 exec-path-from-shell 的要求, 你可以看看之前讨论的帖子。

那就直接把 (featurep 'cocoa) 的判断去掉,只用这个值来精确控制。

https://manateelazycat.github.io/emacs/2020/03/28/color-remap.html

今天使用 face-remap-add-relative 方法,在Snails启动的时候重定向 hl-line 的背景颜色,避免用户主题对Snails输入框背景产生干扰。

今天才更新 snails, backend-bookmarks 的图标是不是被更新没了?

另外,snails-select-line-face 我修改成了斜体和橙色的背景色,更新后,斜体还在,但背景色变成了黑色。我的代码是:

(set-face-attribute 'snails-select-line-face nil
                    :slant 'italic
                    :background "#e5b781" )

然后我又 M-x customize face 进行手动修改,修改后点 apply and save 这时是生效的,但只要一运行 snails ,就会变回黑色。

bookmark 原来有图标吗?

Snails会自动根据主题深浅调整颜色。

你最好截图给我看一下。

哦,抱歉,有可能是我自己写的有,然后记错了。

这个是和主题有关,现在Snails是根据主题的颜色变化的,你可以直接修改你的主题选中效果,Snails会自动保持队形。

哦哦,原来如此,我去研究下。

我看了下原代码:

    (set-face-attribute 'snails-select-line-face nil
                        :background default-foreground-color
                        :foreground default-background-color)

意思是 snails-select-line-face 只是主题 bg 和 fg 的互换吗?那这对白底黑字的主题,也太不友好了吧 :joy:

你可以提供一下选项,默认跟随主题,选项打开时,用自定义颜色。

主要是跟随主题适用性强,要不众口难调。

我这代码水平还是不出来丢人现眼了 :joy: 。自己魔改一下本地的算了。

问下,你那里 snails-backend-current-buffer 能用吗?我这里用了最小配置 + 最新版依旧不能使用, ripgrep 也装了。显示:

Debugger entered--Lisp error: (wrong-type-argument overlayp nil)
overlay-start(nil) (goto-char (overlay-start
snails-select-line-overlay)) (save-current-buffer (set-buffer
snails-content-buffer) (goto-char (overlay-start
snails-select-line-overlay)) (end-of-line) (backward-char) (let
((overlays (overlays-at (point)))) (catch 'candidate (while overlays
(let ((overlay (car overlays))) (if (eq (overlay-get overlay ...)
'snails-candiate-content-face) (progn (throw ... ...)))) (setq
overlays (cdr overlays)))))) snails-candidate-get-info() (let
((candidate-info (snails-candidate-get-info))) (if candidate-info
(progn (snails-backend-do (nth 0 candidate-info) (nth 1
candidate-info))))) snails-candidate-do()
funcall-interactively(snails-candidate-do)
call-interactively(snails-candidate-do nil nil)
command-execute(snails-candidate-do)

同时给一下重现步骤,不知道你干了什么。

就是最小配置启动 snails 后,运行 (snails '(snails-backend-current-buffer)) 。界面能打开,按了回车后就会报错。

最新版已经修复这个问题,注意 snails-backend-current-buffer 这个后端最低要求输入三个字符,要不启动就是空白的。

2 个赞