今天看到一个笑话,如何生成一个随机的字符串,答:让新手退出vim。像极了我第一次使用vim的场景,当时赶紧百度。。。作为编辑器之神,vim有一堆骚操作。今天聊聊自动补全,以前配置过vim插件,能够使用补全,像windows下pycharm一样,已经出现的变量可以敲几个字母补全,好处是减少输入量。
1、单词补全
Ctrl + n
:当输入完第一个字母后,再按Ctrl + n
,Vim会自动出现下拉菜单,且默认选中第一个单词
继续按 Ctrl + n
可以上下选择,但如果缓冲区没有可选单词,那么下拉列表不会有任何选项
Ctrl + p
:功能同上,只是默认选中的是列表最后一个单词
vim新建一个文件,输入下面的内容,测试输入:he,并按下ctrl+n(在输入模式下进行补全)
按下后,弹出几个匹配项,可以看到he自动补全为第一个匹配项hello
再按下ctrl+n可以换成helik,
如果找到了匹配的,接着输入你的字符就可以。
2、行补全
在Vim插入模式下输入已经存在行的第一个单词,再按Ctrl + x
、Ctrl + l
命令,就会列出该整行出来实现Vim行自动补全
这里测试第二行,第八行输入Zh
按下ctrl+x,再按下ctrl+l,两个都按下后才会补全
按下ctrl+l可以切换匹配项(实证ctrl+n也可以切换)
3、字典补全
假设有一个备选单词表,文件名为dict.txt,每行一个单词,里面包含以下内容:
|
|
若要实现基于该单词表的Vim自动补齐,需要设置以下步骤:
(1) 在~/.vimrc配置文件中加入代码:set dictionary-=~/dict.txt dictionary+=~/dict.txt
(2) 打开Vim,在插入模式下输入Ctrl + x
后再输入Ctrl + k
,就能看到dict.txt文件中定义的单词
(3) 若想直接通过Ctrl + n
命令就显示其中的列表,再配置.vimrc文件,加入set complete-=k complete+=k
4、文件名补全
先按Ctrl+x,然后再按Ctrl+f,这样就会弹出文件名的下拉列表(就是当前工作目录下的所有文件名),在test.txt文件同目录下,有下面的文件
现在尝试补全out.txt,输入ou
按下ctrl+x和ctrl+f,选择匹配项用ctrl+n ,ctrl+p
5、目录补全
输入~,按下ctrl+x和ctrl+f,会自动补全路径,其他的一样
6、总结
表示ctrl+n