今天开始写博客记录曾经踩过的一些坑,第一篇博客先占个坑,格式排版方面可能有点乱,后面再继续补充完善。
在ubuntu上可以用的代码编辑器方法很多,比如vscode、vim等,我之前一直用的vim,所以这篇文章初步总结一下我配置vim的一些体会,很多基本步骤在其他优秀的文章已经介绍的很清楚了,由于时间有限,我就站在巨人的肩膀上,直接发出参考文章链接。
1.YouCompleteMe快速配置
之前为了实现vim代码自动补齐等功能,了解到YCM这么一个强大的插件,第一次安装时花了不少时间,第二次安装就快了很多,把一些遇到的坑简短的记录下来,一些基本步骤参考我下面放的链接。
https://blog.csdn.net/SeanChina/article/details/80244962
https://blog.csdn.net/qq_41250354/article/details/90513598
在编译YCM之前一定要先把环境搭建好,我的基本开发环境是ubuntu16.04,在搭建环境中,要特别注意的关键点有:
1).注意python的版本,python和python3只能用一个(前面有+表示加载成功),本次安装采用python3.5, vim8.1。
2)vim的版本很重要,我之前用sudo apt-get install vim这种方式,发现后面YCM编译很容易失败,可能这种方式下载的vim缺少一些依赖项。所以参考一些文章通过git clone来下载编译vim,编译vim时,这里面configure配置要注意python3而不是python,
./configure --with-features=huge \
--enable-multibyte \
--enable-rubyinterp=yes \
--enable-python3interp=yes \
--with-python3-config-dir=/usr/lib/python3.6/config \
--enable-perlinterp=yes \
--enable-luainterp=yes \
--enable-gui=gtk2 \
--enable-cscope \
--prefix=/usr
编译vim参考这篇文章(注意查看vim的版本,我之前是vim8.2那么在make VIMRUNTIMEDIR=/usr/share/vim/vim80 改为make VIMRUNTIMEDIR=/usr/share/vim/vim82)
https://blog.csdn.net/a464057216/article/details/52821171
3)ubuntu16.04可以直接编译ycmd.core,不用下载clang来编译(太复杂),下载好YCM安装包直接执行sudo ./install.py --clang-completer。
4)最后就是配置.vimrc和.ycm_extra_conf.py,没有.vimrc,就自己在home下面创建一个,.ycm_extra_conf.py用的是.vim/bundle/YouCompleteMe/third_party/ycmd/.ycm_extra_conf.py 这个(另外在.vim/bundle/YouCompleteMe/third_party/ycmd/example/下面也有一个这个文件,我试过用这个版本配置有点问题),我是把.ycm_extra_conf.py 复制到.vim/目录下,搞定!
5)注意最后修改ycm_extra_conf.py,我增加的库目录如下(仅供参考,具体看自己的实际情况):
/usr/lib/gcc/x86_64-linux-gnu/5/include
/usr/local/include
/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed
/usr/include/x86_64-linux-gnu
/usr/include
2.其他一些辅助功能配置
通过上面的配置和编译,YCM就安装好了,下面就是对vim插件的进一步配置,让vim更强大,以下是一些可供参考的选项,我先简短的列出来,参考了一些优秀的文章,免去搜索时间。
1)函数语法高亮设置
在/usr/share/vim/vim82/syntax/c.cim 里面最后加上:
"highlight Functions
syn match cFunctions "\<[a-zA-Z_][a-zA-Z_0-9]*\>[^()]*)("me=e-2
syn match cFunctions "\<[a-zA-Z_][a-zA-Z_0-9]*\>\s*("me=e-1
hi cFunctions guifg=#7fd02e cterm=bold ctermfg=yellow
syn match cClass "\<[a-zA-Z_][a-zA-Z_0-9]*\>::"me=e-2
hi cClass guifg=#7fd02e cterm=bold ctermfg=yellow
2)NERDTree目录树安装
https://www.cnblogs.com/lilyxue/p/5572897.html
https://blog.csdn.net/wittfogel/article/details/77771697(NERDTree安装)
3)Taglist函数列表安装
https://blog.csdn.net/haolvshiqi/article/details/54016198
https://blog.csdn.net/networkhunter/article/details/91952294 (Taglist函数列表)
今天先写到这里,感谢这些作者的总结,让我少走一些弯路,后面再完善。