标签: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 =~ ‘\<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 <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