遇到的问题:
添加了Orderless插件之后,minibuffer下建立新的文件时,如果已经存在一个同名称不同文件类型文件,是没法建立新文件的.
举例:
code目录下有一个ex1.c文件,这时候我想新建一个ex1.h文件,C-x C-f输入ex1.h然后回车,并不会新建ex1.h出来,而是直接跳转到ex1.c
相关配置:
(use-package orderless
:init (icomplete-mode)
:custom
(completion-styles '(orderless basic))
(completion-category-overrides '((file (styles basic partial-completion)))))
如何解决?
不管用,如果C-j会报Symbol’s function defination is void:nil 的错误
补充一份vertico的配置,可能问题在这,各位有需要后面我陆续补充其他代码:
(use-package vertico
:hook (after-init . vertico-mode)
:custom
(vertico-sort-function nil)
:config
(vertico-mode)
(setq vertico-resize nil
vertico-count 10
vertico-cycle t)
(require 'vertico-repeat)
(add-hook 'minibuffer-setup-hook #'vertico-repeat-save)
(require 'vertico-directory)
(add-hook 'rfn-eshadow-update-overlay-hook #'vertico-directory-tidy)
)
SPQR
6
你遇到的问题是因为vertico默认选择了第一个补全候选,因为是补全候选肯定是已经存在的文件,解决办法是用 vercito-previous
命令选择你实际输入的值,然后再回车就行了
但是新建文件的时候,不能再输入额外的命令了吧?要不考虑一下加改什么配置?
SPQR
9
新建文件的时候可以输入额外的命令,你甚至M-x vercito-previous
都可以,不过我记得 vercito-previous
默认是绑定到了C-p,也就是你输入完文件名之后C-p一下然后回车就行了
试了一下C-p,会报Error in pre-command-hook,我最近先用M-回车了
可能会涉及其他在minibuffer补全的配置会影响这个,我先考虑一下再传一下代码片段大家看看吧
应该是这个了,但只能M-RET,不能写进自己的配置的,先凑合用吧
SPQR
14
还有一个可能的方案是(setq vertico-preselect 'prompt)
让vertico默认选择prompt
1 个赞