Spacemacs Evil-mode中如何实现Vim的ctrl-x-p与ctrl-x-l补全功能?
在Spacemacs的Evil-mode中复刻Vim的补全操作
当然没问题!Evil-mode作为Vim在Emacs上的复刻层,完全能实现你想要的Vim补全快捷键,而且在Spacemacs里配置起来很直观。我给你详细说说怎么弄:
复刻
Ctrl+x+p(单词补全)
Vim原生的Ctrl+x+p是基于当前缓冲区已有单词的补全,在Evil-mode里,默认已经支持Ctrl+x Ctrl+p这个组合键(和Vim原生逻辑一致)。如果你更习惯Vim里单按p的快捷方式,可以自定义映射:
打开你的Spacemacs配置文件(~/.spacemacs),找到dotspacemacs/user-config区块,添加这段代码:(define-key evil-insert-state-map (kbd "C-x p") 'company-dabbrev)这里用
company-dabbrev是因为Spacemacs默认搭载的Company补全框架,它的dabbrev功能正好对应Vim的缓冲区单词补全,效果和Ctrl+x+p完全一致。复刻
Ctrl+x+l(行补全)
Vim的Ctrl+x+l是整行内容的补全,Evil-mode默认支持Ctrl+x Ctrl+l来触发。同样,如果你想改成和Vim完全一样的Ctrl+x l,可以在同一个配置区块里添加:(define-key evil-insert-state-map (kbd "C-x l") 'company-complete-line)company-complete-line是Company提供的整行补全功能,能完美复刻Vim行补全的体验。
补充一句:如果你的Spacemacs没有默认启用Company(这种情况很少见),也可以用Emacs原生的dabbrev-expand(对应单词补全)和complete-line(对应行补全)来替换上面的函数名,效果也能达到预期。
内容的提问来源于stack exchange,提问作者David Shaked
相关产品推荐
相关产品推荐

