本来是在 doom-emacs 里面发现的, 不过我使用 emacs -q 测试了一下. 使用下面的一个最小配置可以复现.
;;; 配置相关load-path
(add-to-list 'load-path "~/.emacs.d/.local/packages/elpa/ivy-20190530.1924")
(add-to-list 'load-path "~/.emacs.d/.local/packages/elpa/ivy-posframe-20190530.241")
(add-to-list 'load-path "~/.emacs.d/.local/packages/elpa/counsel-20190527.1406")
(add-to-list 'load-path "~/.emacs.d/.local/packages/elpa/swiper-20190528.1333")
(add-to-list 'load-path "~/.emacs.d/.local/packages/elpa/posframe-20190520.58")
(require 'ivy)
(ivy-mode +1)
(require 'ivy-posframe)
(setq ivy-display-function #'ivy-posframe-display)
(setq confirm-nonexistent-file-or-buffer t)
(ivy-posframe-enable)
具体表现是, C-x C-f new-file
之后, 回车键没有作用. 不管敲多少次都不行. 使用 C-M-j
可以直接创建新文件.
如果将配置中 (setq confirm-nonexist-file-or-buffer t)
去掉, C-x C-f new-file
之后, 使用一个回车就可以创建新文件了.
或者, 如果不使用 ivy-posframe
, 去掉相关配置, 保留 (setq confirm-nonexist-file-or-buffer t)
, C-x C-f new-file
之后, 第一个回车会在 minibuffer 出现一个 (confirm)
的提示,这时候再次回车也能正常创建新文件.
但是这两个配置合起来就出现无法正常创建新文件的情况了.