Linux基礎15:在CentOS7上使用vim建立C++開發環境

來源:互聯網
上載者:User

標籤: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

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

查看版本號碼:

[[email protected] 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 help23 " :PluginList       - lists configured plugins24 " :PluginInstall    - installs plugins; append `!` to update or just :PluginUpdate25 " :PluginSearch foo - searches for foo; append `!` to refresh local cache26 " :PluginClean      - confirms removal of unused plugins; append `!` to auto-approve removal27 "28 29 filetype plugin indent on30 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=133 let g:ycm_confirm_extra_conf=034 let g:ycm_cache_omnifunc=035 let g:ycm_min_num_of_chars_for_completion=2 36 let g:ycm_complete_in_comments=137 let g:ycm_complete_in_strings=138  39 40 set nocompatible41 source $VIMRUNTIME/vimrc_example.vim42 source $VIMRUNTIME/mswin.vim43 behave mswin44 set nobackup45 set diffexpr=MyDiff()46 function MyDiff()47   let opt = ‘-a --binary ‘48   if &diffopt =~ ‘icase‘ | let opt = opt . ‘-i ‘ | endif49   if &diffopt =~ ‘iwhite‘ | let opt = opt . ‘-b ‘ | endif50   let arg1 = v:fname_in51   if arg1 =~ ‘ ‘ | let arg1 = ‘"‘ . arg1 . ‘"‘ | endif52   let arg2 = v:fname_new53   if arg2 =~ ‘ ‘ | let arg2 = ‘"‘ . arg2 . ‘"‘ | endif54   let arg3 = v:fname_out55   if arg3 =~ ‘ ‘ | let arg3 = ‘"‘ . arg3 . ‘"‘ | endif56   let eq = ‘‘57   if $VIMRUNTIME =~ ‘ ‘58     if &sh =~ ‘\<cmd‘59       let cmd = ‘""‘ . $VIMRUNTIME . ‘\diff"‘60       let eq = ‘"‘61     else62       let cmd = substitute($VIMRUNTIME, ‘ ‘, ‘" ‘, ‘‘) . ‘\diff"‘63     endif64   else65     let cmd = $VIMRUNTIME . ‘\diff‘66   endif67   silent execute ‘!‘ . cmd . ‘ ‘ . opt . arg1 . ‘ ‘ . arg2 . ‘ > ‘ . arg3 . eq68 endfunction69      set nu!70      colorscheme desert 71      syntax enable 72      syntax on73      74     set encoding=utf-875     set fileencodings=utf-8,chinese,latin-176     if has("win32")77     set fileencoding=chinese78     else79     set fileencoding=utf-880     endif81     source $VIMRUNTIME/delmenu.vim82     source $VIMRUNTIME/menu.vim83     language messages zh_CN.utf-884 85   86 let g:NERDTreeWinPos="left"87 let g:NERDTreeWinSize=2588 let g:NERDTreeShowLineNumbers=189 let g:neocomplcache_enable_at_startup = 1 90 91 au GUIEnter * simalt ~x92 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++開發環境

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.