Configure Vim On Mac

一直都觉得网上很火的SpaceVim用起来没那么顺手

主要是装的东西太多了,所以最近都在用atom

不过今天突然想卸掉SpaceVim用一下另一个配置spf13-vim,于是有了此文

添加python和lua支持

安装spf13-vim很简单,主要是按照readme所给的方式就能安装成功

但是需要注意的是,vim要有luapython的支持

在vim中使用:echo has("lua"):echo has("python")来查看是否有支持

返回1就是有,0就是没有,那么可以重新安装

在mac中可以用brew info vim查看vim的的依赖

1
2
3
4
==> Dependencies
Required: perl ✔, ruby ✔
Recommended: python ✔
Optional: gettext ✘, lua ✘, luajit ✔, python@2 ✔

根据这个就可以知道需要安装什么了,我安装的是luajit和python@2

1
brew install --with-luajit --with-python@2

安装完成之后就可以进行下一步,配置自动补全

配置YouCompleteMe

link

首先安装完spf13-vim之后,如果发现没有安装YouCompleteMe可以在.vimrc.bundles中添加

1
Bundle `Valloric/YouCompleteMe`

这样在vim中输入

1
:BundleInstall

就可以安装了

如安装了,那么就可以找到.vim/bundle/YouCompleteMe这个文件夹了

现在我们需要的是为其添加语法支持,首先安装clang-completer

1
.vim/bundle/YouCompleteMe/> install.sh --clang-completer

安装完成后要将配置文件复制到根目录下

对于YCM来说,当打开一个代码文件时,插件将顺着文件所在的路径一直向上查找,如果搜索到第一个配置文件将立刻读入

如果一直搜索到根目录依旧无法找到配置文件,语法补全将不被启用。由此可知,文件所在目录的配置文件优先级最高,根目录的优先级最低

其中配置文件在.vim/bundle/YouCompleteMe/third_party/ycmd中,将配置文件vi .ycm_extra_conf.py复制到根目录

然后删除

1
2
3
final_flags.remove( '-stdlib=libc++' )
except ValueError:
pass

然后就可以补全了,美中不足的是每次打开cpp文件就会问是否加载配置文件

可以在.vimrc中配置

1
2
3
4
"let g:ycm_global_ycm_extra_conf = '~/.ycm_extra_conf.py'
"Do not ask when starting vim
let g:ycm_confirm_extra_conf = 0
let g:syntastic_always_populate_loc_list = 1

其中,g:ycm_global_ycm_extra_conf 定义了全局配置文件,当YCM在向上搜索的路径中找不到配置文件后,YCM将导入全局配置文件

g:ycm_confirm_extra_conf 决定了在导入配置时是否需要手动确认,设置为0后YCM就不会老是在启动vim的时候来烦你

快捷键

在此配置文件中,有许多插件键就是,

  • Undotree : ,u,可以查看编辑历史,并可以跳转
  • NERDTree:,e/<crtl-e>可以查看目录
    • 打开多文件后,文件之间的跳转是b(n),例如:b1
    • 两个文件之间的切换是ctrl-6
    • bd是关闭该buffer,也就是关闭该文件
  • ctrlp:ctrl-p可以查看最近系统使用的文件,妈蛋,当时我正在听歌,然后显示的全都是我的歌
  • NERDCommenter:,cc,可以在v模式下快速注释和解除注释
  • Tagbar: ,tt可以打开类表,方便查看
  • /data是搜索,匹配之后n是跳跃
  • /s/data/replace/是替换
  • /nohl是取消搜索之后的高光
  • :terminal [zsh],可以打开shell,使用ctrl+ww可以在shell和vim间切换