懒猫大大,请问使用前缀!进行搜索项目文件内容时,没有回显,但是使用#搜索当前buffer是有回显的,您能指点一下吗?我鼓捣了一下午,还是没头绪。(配置就是上图的,没有变)
多敲几个字符试试呢?
试过了,还是出不来。。。很奇怪,从trace-function中看得到,敲四个字符之后就已经调用rg执行搜索了(上面的截图),但是就是没有回显 我鼓捣快一天了
可以发一个目录压缩包和重新步骤到github issue
今天配置了doom emacs + snails,不能用,有点问题?
- package.el
(package! snails :recipe (:host github :repo “manateelazycat/snails”)) - config.el
(use-package! snails)
M-x snails
提示如下错误
snails-search: Symbol’s function definition is void: string-replacesnails-search: Symbol’s function definition is void: string-replace
是不是还需要其他配置?
(with-eval-after-load "snails"
(fset 'string-replace 'replace-regexp-in-string))
先这样hack一下吧,我也遇到了。你可以到github提个issue?
(require 'subr)
按照这个方式hack了一下,不报错了,但是也不能正常工作,输入搜索关键词后,没有反应。
找不到这个subr包,好像包名发生变化了
我的emacs版本是27.1
不要编译 这个包编译之后用不了
我用下面这两种方法都可以,你试试第二种。
这两种方法都不行的话,那应该是你编译了snails的原因了。解决方法:手动删除snails的elc文件,或者load-path到snails的本地仓库。
总结一下snails白屏的解决办法
错误及解决办法:
1、Symbol’s function definition is void: string-replace :emacs27没有subr包
提供两种解决办法:
2、nothing selected:snails被编译了
把snails的elc文件删掉。推荐重新安装:按照snails readme安装。若是用了use-package及straight可以用:build (:not compile)
防止安装时编译snails。抄了多位大佬的作业,贴一下简单的配置:(:hook (window-setup . snails)
可以把snails当dashboard用)
;; Setup snails
(use-package snails
:straight (snails :type git :host github :repo "manateelazycat/snails" :build (:not compile))
:if (display-graphic-p)
:hook (window-setup . snails)
:bind ("M-SPC" . snails)
:custom-face
(snails-content-buffer-face ((t (:background "#111" :height 110))))
(snails-input-buffer-face ((t (:background "#222" :foreground "gold" :height 110))))
(snails-header-line-face ((t (:inherit font-lock-function-name-face :underline t :height 1.1))))
:config
(when (version< emacs-version "28.0")
(with-eval-after-load "snails"
(fset 'string-replace 'replace-regexp-in-string)))) ;; Fix up "Symbol’s function definition is void: string-replace"
最好加个版本判断
这个建议好。不过我不懂elisp,加这条(unless (version< emacs-version "27.1")
不知道行不行,C-x C-e
没报错 麻烦你帮我看看。
另外,我一上午都搞不定macos的磁盘搜索功能。想请教一下:如图,mdfind正常工作,snails配置应该也没啥问题,我怕straight影响snails调用后端,我还直接指定了load-path。customize-group:snails可以看到“?”后端是默认加了mdfind的。我也试了试
和这个配置,都无法在snails里使用mdfind。
好的好的,谢谢。已经改为小于28.
根据 How to replace focus-out-hook with after-focus-change-function in emacs 27? 把这一行代码改成这个样子好像可以解决。我已经解决了这个问题了,不知道你方便不方便,可以测试一下。
diff --git a/snails-core.el b/snails-core.el
index e45ea9c..ccac285 100644
--- a/snails-core.el
+++ b/snails-core.el
@@ -810,7 +810,7 @@ or set it with any string you want."
;; Focus out to hide snails frame on Mac.
(when (featurep 'cocoa)
- (add-hook 'after-focus-change-function 'snails-quit)))
+ (add-function :after after-focus-change-function (lambda () (unless (frame-focus-state) (snails-quit))))))
;; Show popup frame.
;; `select-frame-set-input-focus' is necessary for gnome-shell DE.
可能是因为我现在用的 emacs-mac,所以没法复现这个问题 重新下载 emacs-plus 又要编译等好长时间懒得动 (另外我已经切换到了 vertico + mini-frame) 代码看起来没毛病,谢谢!