码迷,mamicode.com
首页 > 编程语言 > 详细

Linux基础15:在CentOS7上使用vim建立C++开发环境

时间:2018-04-15 12:04:10      阅读:1087      评论:0      收藏:0      [点我收藏+]

标签:messages   相关   ret   href   out   features   tty   不同   测试   

 

在之前的博客中介绍了如何在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 --version
VIM - 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 =~ ‘\<cmd59       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 <F2>  :NERDTreeToggle <CR>
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环境建立完毕。

 

Linux基础15:在CentOS7上使用vim建立C++开发环境

标签:messages   相关   ret   href   out   features   tty   不同   测试   

原文地址:https://www.cnblogs.com/coe2coe/p/8836431.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!