C/C++知识点之Linux基础15:在CentOS7上使用vim建立C++开发环境
小标 2019-01-21 来源 : 阅读 2196 评论 0

摘要:本文主要向大家介绍了 C/C++知识点之Linux基础15:在CentOS7上使用vim建立C++开发环境,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

本文主要向大家介绍了 C/C++知识点之Linux基础15:在CentOS7上使用vim建立C++开发环境,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

C/C++知识点之Linux基础15:在CentOS7上使用vim建立C++开发环境

在之前的博客中介绍了如何在Ubuntu16上使用vim建立C++开发环境:
Linux基础12Building a C/C++ IDE with vim
 
本博客将介绍如何在CentOS7上使用vim建立类似的C++开发环境。两套环境的建立思路是类似的,就是使用vim强大的插件扩展功能,不同之处在于Ubuntu上使用的插件管理器是vim-addon-manager,而CentOS7上使用的是VBundle作为插件管理器。VBundle的特色在于插件的自动安装和更新,这些插件一般存放在github上。
 
本博客主要参考了以下博客的部分内容:
https://www.cnblogs.com/hugb/p/7450845.html
https://blog.csdn.net/nzyalj/article/details/75331822
 
1.安装vim8.0
从github上下载vim源代码。
git clone https://github.com/vim/vim.git
编译:
 ./configure  --prefix=/opt/test/ --with-features=huge -enable-pythoninterp --with-python-config-dir=/usr/lib/python2.7/config --enable-cscope
make all doc info
此处在编译doc时存在一些编译错误,可以忽略。
安装到指定的目录:
make  install
查看版本号:
[u@11 install]$ vim --versionVIM - Vi IMproved 8.0 (2016 Sep 12, compiled Apr 14 2018 06:54:13)包含补丁: 1-1704[此处省略若干细节]
 
2.建立.vimrc文件,内容如下:
 

 1 cat .vimrc
 2 set nocompatible              
 3 filetype off                 
 4 
 5 set rtp+=~/.vim/bundle/Vundle.vim
 6 call vundle#begin()
 7 
 8 Plugin ‘gmarik/Vundle.vim‘     
 9 Plugin ‘bling/vim-airline‘    
10 Plugin ‘scrooloose/nerdtree‘ 
11 Plugin ‘kien/ctrlp.vim‘     
12 Plugin ‘taglist.vim‘       
13 Plugin ‘Valloric/YouCompleteMe‘ 
14 Plugin ‘winmanager‘            
15 Plugin ‘gdbmgr‘               
16 
17 call vundle#end()
18 
19 
20 filetype plugin indent on 
21 
22 " Brief help
23 " :PluginList       - lists configured plugins
24 " :PluginInstall    - installs plugins; append `!` to update or just :PluginUpdate
25 " :PluginSearch foo - searches for foo; append `!` to refresh local cache
26 " :PluginClean      - confirms removal of unused plugins; append `!` to auto-approve removal
27 "
28 
29 filetype plugin indent on
30 
31 let g:ycm_global_ycm_extra_conf=‘~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py‘
32 let g:ycm_seed_identifiers_with_syntax=1
33 let g:ycm_confirm_extra_conf=0
34 let g:ycm_cache_omnifunc=0
35 let g:ycm_min_num_of_chars_for_completion=2 
36 let g:ycm_complete_in_comments=1
37 let g:ycm_complete_in_strings=1
38  
39 
40 set nocompatible
41 source $VIMRUNTIME/vimrc_example.vim
42 source $VIMRUNTIME/mswin.vim
43 behave mswin
44 set nobackup
45 set diffexpr=MyDiff()
46 function MyDiff()
47   let opt = ‘-a --binary ‘
48   if &diffopt =~ ‘icase‘ | let opt = opt . ‘-i ‘ | endif
49   if &diffopt =~ ‘iwhite‘ | let opt = opt . ‘-b ‘ | endif
50   let arg1 = v:fname_in
51   if arg1 =~ ‘ ‘ | let arg1 = ‘"‘ . arg1 . ‘"‘ | endif
52   let arg2 = v:fname_new
53   if arg2 =~ ‘ ‘ | let arg2 = ‘"‘ . arg2 . ‘"‘ | endif
54   let arg3 = v:fname_out
55   if arg3 =~ ‘ ‘ | let arg3 = ‘"‘ . arg3 . ‘"‘ | endif
56   let eq = ‘‘
57   if $VIMRUNTIME =~ ‘ ‘
58     if &sh =~ ‘\<cmd‘
59       let cmd = ‘""‘ . $VIMRUNTIME . ‘\diff"‘
60       let eq = ‘"‘
61     else
62       let cmd = substitute($VIMRUNTIME, ‘ ‘, ‘" ‘, ‘‘) . ‘\diff"‘
63     endif
64   else
65     let cmd = $VIMRUNTIME . ‘\diff‘
66   endif
67   silent execute ‘!‘ . cmd . ‘ ‘ . opt . arg1 . ‘ ‘ . arg2 . ‘ > ‘ . arg3 . eq
68 endfunction
69      set nu!
70      colorscheme desert 
71      syntax enable 
72      syntax on
73      
74     set encoding=utf-8
75     set fileencodings=utf-8,chinese,latin-1
76     if has("win32")
77     set fileencoding=chinese
78     else
79     set fileencoding=utf-8
80     endif
81     source $VIMRUNTIME/delmenu.vim
82     source $VIMRUNTIME/menu.vim
83     language messages zh_CN.utf-8
84 
85   
86 let g:NERDTreeWinPos="left"
87 let g:NERDTreeWinSize=25
88 let g:NERDTreeShowLineNumbers=1
89 let g:neocomplcache_enable_at_startup = 1 
90 
91 au GUIEnter * simalt ~x
92 
93 map   :NERDTreeToggle 
94 
95 let NERDTreeShowBookmarks=1

 
3.安装VBundle插件管理器。
建立.vim以及VBundle的相关目录。
mkdir -p  ./.vim/bundle下载VBundle插件管理器。git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
下载和安装插件。
主要使用VBundle的自动下载安装功能。
启动vim 8.0。
系统默认安装的vim程序是/usr/bin/vim,版本为7.x。可以在/usr/local/bin目录建立一个软链接,此目录排在PATH环境变量的比较靠前的位置,因此可以覆盖默认的vim程序,达到执行vim就启动vim 8.0的目的。
 
启动vim之后,在vim中执行以下命令,安装在.vimrc中配置的插件。
:PluginInstall
安装完成后vim显示Done。
 
4.使用NERDTree目录树插件。
按F2启动NERDTree目录树插件。 可以看到这个vim已经具备了类似Eclipse下的自动编译功能,可以自动检测到C/C++代码的编译错误(分割栏中的红色>>符号,下面截图中46行和47行有两个参数未使用的错误)。
 
 
5.使用YouCompleteMe插件。
这个插件用于实现自动补全功能。
在VBundle自动下载之后,还需要人工执行以下操作:
(1)安装cmake.
sudo yum install cmake
(2)执行下面的安装脚本:
./install.py --clang-completer
安装成功之后效果如下:
 

 
6.使用gdbmgr插件。
gdbmgr插件用于在vim中使用gdb来进行程序的调试。gdbmgr集成了常见的调试窗口,使用起来比gdb的layout命令更加方便和直观。
(1)gdbmgr下载。
git clone https://github.com/vim-scripts/gdbmgr.git
也可以在以下地址下载:
https://www.vim.org/scripts/download_script.php?src_id=18153
(2)gdbmgr编译。
 ls ${HOME}/.vim/bundle/gdbmgr/gdbmgr/src
gdbmgr.c  gdbmgr.h  gdbmgr.o  gdbmgr.so  Makefile  Makefile.mac执行make进行编译。
(3)在.vimrc文件中启用gdbmgr的插件。
参考前面.vimrc文件中Plugin gdbmgr行的内容。
(4)测试gdbmgr。
先将${HOME}/.vim/bundle/gdbmgr/gdbmgr/src这个路径加入LD_LIBRARY_PATH变量,以便系统能够找到gdbmgr.so这个动态库。
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${HOME}/.vim/bundle/gdbmgr/gdbmgr/src/
 
再将${HOME}/.vim/bundle/gdbmgr/gdbmgr/progs目录中的例子代码编译完毕。
cd到这个目录之后,执行vim。
执行:DI命令(Debugger Initial,调试器初始化)。
并没有自动出现预期的调试界面,主要问题是没有加载源代码和可执行文件。
解决办法:将当前路径(.)加入PATH变量。
export PATH=${PATH}:.
再次启动vim并执行:DI命令,可以看到代码和程序已经被成功加载,默认加载prog01和prog01.c。
执行:DR命令运行被调试程序prog01,可以设置断点,查看变量或表达式的值,设置watachpoints,以及观察调用栈等。

 
 
至此,一个CentOS7系统下的基于vim的C++ IDE环境建立完毕。

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C/C+频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程