emacs 27.2 没这个函数
按照这个方式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) 代码看起来没毛病,谢谢!
老铁用mini-frame会有闪烁吗?
不闪啊 没什么问题
刚打开frame时背景色会不同,会闪烁一下,就是这种。 用ivy-posframe就没这问题,或者说不明显,这个看起来很难受。
下面动图是在Linux下,使用版本28.0.50.
支持分享 点赞
@manateelazycat 大佬,报个bug。我在用snails的rg backend,报错
setq: Symbol’s function definition is void: second
Emacs 27的时候已经obsolete了,我用的是Emacs29。
github提个issue吧
已经开了