YongSir

专业程序员伪装者

vim拾遗之其实可以不用插件的

向所有刚接触到VIM的新手一样,笔者曾几何时也把vim搞的花里胡哨,美其名曰vim-ide,折腾了tons of plugins,直到vim被弄得越来越臃肿,直到遇到了浩哥,看到大哥信手纯vim在我面前完成了所有的那些,我原本只能借助插件完成的功能,一时惊愕不已: 原来这些VIM全都是自有的,这篇的目的并不是让大家告别插件,彻底的不用,而是结合笔者自己的使用经验,多给一钟选项罢了,好了开始吧

vim下的文件跳转和查找

不知道大家是否注意到过vim的设置选项中,是有一些默认的值得,比如:set path?,多半会输出这样一个结果:

1
path=.,/usr/include,,

通过path这个名称,大致也能猜到这是vim有关文件查找的路径,后边的就是指几个默认当前目录下,所以不出意外的话我们的查找应该以当前目录层级的相对路径,可是很可能你并不明确当前目录下的文件,这时候使用:find *通配的去查找着当前路径下的文件,可以使用tab跳转,但是如果:set wildmenu的话,找起来就更方便了,画风是这样的
wildmenu画风展示

然后enter,就进入到了想要的文件,这就是实现了简单的文件查找和变更,如果此时先要回到原来的文件,可以通过:ls命令,他会罗列出当前vim缓存所有的未关闭的文件,like this:
vim下的ls
比如这里我想回到vim拾遗的文章,输入:

1
:b vi

我甚至都不用tab出完整的文件名,直接enter就回到了原来的文件,当然你也可以语义化为back
vi…

vim自己的自动补全

用vim敲代码几乎都或多或少听过YouCompleteMe这个插件的大名,它几乎支持每种语言,让代码写起来更容易,但实际上,vim本身就提供了这样的功能,那就是一系列的Cr + n的命令,下面列举如下:

1
2
3
4
5
6
7
8
" 当前文件匹配
Cr x + Cr n " next
Cr x + Cr p " pre

" 文件夹匹配
Cr x + Cr F 再配合 n/p
" tag匹配
Cr x + Cr ]

文件名自动补全
谁用谁知道,是的我已经听到有人吐槽这个原生OnmiComplete很若,但是对多数人来说的确够用了,如果实在想做到想IDE一样索引API,那还需要CTags,对我来说完全目前还用不上,自带的足以,以后有机会在补上Ctags 及 JSTags 根vim配合的自动补全吧