1. 程式人生 > >將Vim配置為C/C++編輯器(IDE)

將Vim配置為C/C++編輯器(IDE)

對於VIM外掛安裝,個人建議閱讀每個外掛的官方說明,如以下列出的外掛專案地址或者官網頁面,或者詳細閱讀外掛中的doc目錄下的說明文件,按照官方推薦的方式進行安裝,並獲取最新版本。話不多說,以下所有便是需要安裝的外掛列表。

Pathogen

mkdir -p ~/.vim/autoload ~/.vim/bundle && \
curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim

將以下語句複製到你的vimrc:

execute pathogen#infect() 

Auto Pairs :

git clone git://github.com/jiangmiao/auto-pairs.git ~/.vim/bundle/auto-pairs

NERDTree

git clone https://github.com/scrooloose/nerdtree.git ~/.vim/bundle/nerdtree

在VIM中:NERDTree命令開啟檔案瀏覽面板,也可配置快捷鍵開啟在.vimrc中進行以下配置:
配置Ctrl+N作為快捷鍵

map <C-n> :NERDTree<CR>

全域性快捷鍵F5

nnoremap <silent> <F5
> :NERDTreeToggle<CR>

MiniBufExplorer

簡潔的buffer瀏覽器
不瞭解buffer?
vim為每個開啟的檔案建立buffer,在關閉檔案之後保留buffer,讓我們可以自由切換開啟的buffer。可以理解為多個檔案選項卡之間切換功能。
官網頁面:http://www.vim.org/scripts/script.php?script_id=159
專案地址:https://github.com/fholgado/minibufexpl.vim
安裝方法:將minibufexpl.vim檔案下載到.vim/bundle/minibufexpl/plugin目錄下即可,手動建立minibufexpl/plugin目錄。
或者使用如下命令下載最新版:

git clone https://github.com/fholgado/minibufexpl.vim.git ~/.vim/bundle/minibufexpl

以上兩種安裝方式,是兩種不同的版本。
.vimrc配置:

let g:miniBufExplMapWindowNavVim = 1 
let g:miniBufExplMapWindowNavArrows = 1 
let g:miniBufExplMapCTabSwitchBufs = 1 
let g:miniBufExplModSelTarget = 1 

切換buffer

:b buffer編號

刪除buffer

:bd buffer編號

Taglist

可以將程式碼檔案的函式、變數等列出來,查詢方便。
官網頁面:http://www.vim.org/scripts/script.php?script_id=273
由於此外掛依賴於執行程式ctags,我們需要先安裝它:
Ubuntu系統中使用如下命令進行安裝(不同平臺系統安裝命令會有不同):

sudo apt-get install ctags

在官網下載外掛壓縮包,然後解壓到.vim/bundle目錄下即可。

關於.vimrc中對Taglist的配置,可從如下配置中有選擇性的進行定製:

let Tlist_WinWidth=40        "設定taglist寬度
let Tlist_Auto_Highlight_Tag=1
let Tlist_Auto_Open=1
let Tlist_Auto_Update=1
let Tlist_Display_Tag_Scope=1
let Tlist_Exit_OnlyWindow=1  "如果Tlist視窗是最後一個視窗,則退出Vim.
let Tlist_Enable_Dold_Column=1
let Tlist_File_Fold_Auto_Close=1
let Tlist_Show_One_File=1
let Tlist_Use_Right_Window=1  "右側顯示Tlist視窗
let Tlist_Use_SingleClick=1

開啟或關閉Taglist面板可使用命令“:Tlist”,也可配置快捷鍵:

map <C-t> :TlistToggle<CR>

OmniCppComplete

:helptags ~/.vim/bundle/omnicppcomplete/doc

檢視幫助資訊:

:h omnicppcomplete

為當前目錄建立ctags資料庫,使用如下命令:

ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .

也可以為此操作設定快捷鍵,在.vimrc檔案中加入如下配置:

map <C-F12> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR>

這樣,就可以通過快捷鍵Ctrl+F12生成當前目錄tags。
更詳細的說明,可參考以上提到的幫助文件:h omnicppcomplete。

tags for std c++

ctags -R --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ cpp_src 

可以為生成的tags更名為cpp或其它名字,容易分辨:

mv tags cpp

將此檔案,新增到.vimrc中的環境變數ctags中,使其生效:

set tags+=/tags/cpp "cpp檔案的完整路徑

如果有其它庫需要新增的話,也可以按照以上的方法生成tags並新增。

SuperTab

git clone https://github.com/ervandew/supertab.git ~/.vim/bundle/supertab

使用了SuperTab之後想要輸入Tab怎麼辦?ctrl+v然後再按Tab鍵,ctrl+w刪除。

最後的話

一開始接觸vim外掛的時候,多少感覺有些頭疼,檢視官方文件或者幫助文件,獲取安裝方法和使用方法,是比較重要的。

附上一張截圖:

相關推薦

Vim配置C/C++編輯IDE

對於VIM外掛安裝,個人建議閱讀每個外掛的官方說明,如以下列出的外掛專案地址或者官網頁面,或者詳細閱讀外掛中的doc目錄下的說明文件,按照官方推薦的方式進行安裝,並獲取最新版本。話不多說,以下所有便是需要安裝的外掛列表。 Pathogen mkd

跳坑《一百五十一》使用第三方編輯IDE開發

開發小程式,並非一定要使用官方的編輯器,你也可以任意選擇自己喜歡的編輯器;編輯完畢,預覽在小程式編輯器內即可;比如你可以使用支援協同開發的開發工具來彌補官方開發者工具無法協同開發的問題;問題:如何進行多人間的協同開發,程式碼如何進行版本管理 在專案目錄使用git或者sv

Ubuntu下vim配置Python IDE

配置好了Django的環境,該把vim好好配置一下當做python的IDE來用。 在Windows下用慣了各種現成的工具,轉到Linux下,一下沒了頭緒……好歹google出一些別人的心得,折騰來折騰去,也算是把開發環境配好了。 1. 安裝完整的vim # apt-get install vim-gno

vim編輯

vim編輯器命令vim編輯器基本命令(上) 三種模式: 編輯模式、輸入模式、末行模式 默認為編輯模式 模式轉換: 編輯模式-->輸入模式: i:insert,在光標所在處輸入 a:append,在光標出後方輸入 o:在光標所在處的下方打開一個新行;

如何理解c++叠代

stl源碼 str 抽象 ice ive 左值 arc 統一 為什麽 1、如何理解叠代器?叠代器不是指針,也似乎不是string這種類型 參考:叠代器與指針的區別是? C++map叠代器的++操作是如何實現的?討論。iterator提供了遍歷STL容器裏元素的方式,not-

VIM編輯

默認 路由 poe 指向 vim編輯器 左右 撤銷 所在 刪除 VIM編輯器 [root@dong ~]# vim a.txt 新建一個文件a.txti:進入插入模式 V:可視行編輯模式 :進入擴展命令模式:wq 保存並退出 v:可視編輯

c++迭代iterator詳解【轉】

(轉自:https://www.cnblogs.com/hdk1993/p/4419779.html) 1. 迭代器(iterator)是一中檢查容器內元素並遍歷元素的資料型別。 (1) 每種容器型別都定義了自己的迭代器型別,如vector: vector<int>::it

bash學習之vim編輯

原本不想寫這篇文章的,因為各式各樣的編輯器有很多,用什麼完全根據自己的愛好來決定就行了,而且很容易掌握一些基本的命令之後就可以編輯了。除了vim,還有sed,gawk,等編輯器。但是直到我偶爾看到了這篇神的編輯器和編輯器之神,心中頓時產生一種敬畏之情,編輯器那麼

C++ MFC 計時OnTimer的用法例項

1、”點選“跳轉介面的程式碼: // TODO:  在此新增控制元件通知處理程式程式碼  MyLog td;  td.DoModal(); 2、點選後,在另一個介面中顯示如下介面,文字框中的數字依次升高 (1)在介面中新增文字框,計時器 在視窗中右鍵 (2)新增文字框

C++迭代iterator的簡單使用

迭代器提供對一個容器中的物件的訪問方法,並且定義了容器中物件的範圍。迭代器就如同一個指標。事實上,C++的指標也是一種迭代器。但是,迭代器不僅僅是指標,因此你不能認為他們一定具有地址值。例如,一個數組索引,也可以認為是一種迭代器。 迭代器有各種不同的建立方法。程式可能把迭代

學習vi和vim編輯4:快速移動位置

通常,編輯文字需要做的第一步就是將游標移動到需要編輯的地方,因此編輯文字的速度一定程度上取決於將游標移動到目的地所需要的按鍵數。這一篇文章,主要介紹如何快速移動游標。 根據螢幕來移動: 在一個有幾千行

百度編輯ueditor@功能之獲取坐標

election set tor 設置 fse 隱藏 edit var 功能 //獲取百度編輯器的工具類 var domUtils = UE.dom.domUtils; //獲取編輯器的坐標

從零開始造一個Markdown編輯

實時 需要 自己實現 自己 背景 學習正則表達式 tex ID img 背景 最近學習正則表達式,於是要挑一個練手項目,恰好對markdown編輯器十分感興趣,於是就進行了一些常識。做了一個簡單的markdown解析器和編輯器。 網頁端的地址(不支持文件的操作): http

歡迎使用CSDN-markdown編輯111

歡迎使用Markdown編輯器寫部落格 本Markdown編輯器使用StackEdit修改而來,用它寫部落格,將會帶來全新的體驗哦: Markdown和擴充套件Markdown簡潔的語法 程式碼塊高亮 圖片連結和圖片上傳 LaTex數學公式 UML序列

多邊形編輯

       自上次之後,過去好久了。。寫了個雛形後,還有很多地方沒有完善,最近抽空又把這個工具完善了一下,至少我感覺達到了可以用一用的程度了。很自私的加入了一個打賞頁面,歡迎各位客官打賞噢。。         完善之後工具的使用方法如下:         1. 新建一個

Centos7.5配置緩存DNS服務

lookup http roo dns設置 技術分享 緩存dns服務器 eee 命令 proc 本案例我們來搭建緩存DNS服務器,我們需要準備2臺Centos7.5系統,svr100作為緩存DNS服務器,IP為192.168.2.100/24,pc200作為客戶機,IP地址

Centos7.5配置智能DNS服務

emctl http 文件 emc 分享圖片 置配 www fde 圖片 本例要求針對域名www.51cto.com 實現智能DNS解析,當不同的客戶機來查詢時能夠給出不同的答案。完成下列任務: 從主機192.168.2.200查詢時,結果為: 1.1.1.1 從其他

【洛谷 P4008】 [NOI2003]文字編輯 Splay

題目連結 \(Splay\)先練到這吧(好像還有道毒瘤的維護數列誒,算了吧) 記錄下游標的編號,維護就是\(Splay\)基操了。 另外資料有坑,資料是\(Windows\)下生成了,回車是'\n\r',我就被坑了。 #include <cstdio> #include <algorith

Xamarin實現圖片設定啟動頁——Xamarin.forms

其實設定啟動頁很簡單,只是我在做的時候,踩了一些坑,就走了一些彎路。 我知道大家一點開這些部落格就想看到原始碼,在我搭建環境給的demo裡面就有一個splash的demo,多個app的demo免費相送,傳送門:https://blog.csdn.net/qq_41647999/article

模擬Scratch的視覺化指令碼編輯

簡介 兒童程式設計學習工具Scratch最先由麻省理工學院2007年就推出,目前谷歌正在與麻省理工合作開發下一代Scratch。 由於喜歡Scratch的視覺化指令碼編輯方式,於是決定模擬做一個更為通用化的指令碼編輯模組,不僅僅用於兒童編輯學習,可以通過定製