【轉】gvim配置及相關插件安裝

0.準備軟件及插件。
(a)gvim72.exe?地址ftp://ftp.vim.org/pub/vim/pc/gvim72.exe。
(b)vimcdoc-1.7.0-setup.exe?地址http://prdownloads.sourceforge.net/vimcdoc/vimcdoc-1.7.0-setup.exe?download
(c)ec57w32.zip?地址http://prdownloads.sourceforge.net/ctags/ec57w32.zip
(d)taglist_45.zip?地址http://www.vim.org/scripts/download_script.php?src_id=7701
(e)winmanager.zip?地址http://www.vim.org/scripts/download_script.php?src_id=754
(f)minibufexpl.vim?地址http://www.vim.org/scripts/download_script.php?src_id=3640
(g)a.vim?地址http://www.vim.org/scripts/download_script.php?src_id=7218
(h)grep.vim?地址http://www.vim.org/scripts/download_script.php?src_id=7645
(i)visualmark.vim?地址http://www.vim.org/scripts/download_script.php?src_id=4700

1.安裝gvim7.2。
運行gvim72.exe,選擇完全安裝(Full),我的安裝目錄是默認的C:\Program Files\Vim。
安裝完成后,包括了文件夾vim72和文件夾vimfiles,以及腳本_vimrc。

2.安裝中文幫助手冊。
運行vimcdoc-1.7.0-setup.exe,它會自動找到gvim的安裝位置。
安裝完畢后重新打開gvim,:help?時幫助手冊已經是中文的了。
進行到這一步時,我的gvim菜單處的中文出現了亂碼。
在網上尋找解決方案,將C:\Program Files\Vim\vim72下名為?lang?的文件夾刪去,使菜單語言變為英語。

3.語法高亮。
首先,編輯_vimrc文件加入以下內容:
set nu!
colorscheme desert
syntax enable
syntax on
這些設置使得gvim可以顯示行號,并使用了desert配色方案,而且打開了語法高亮功能(用不同顏色顯示注釋、關鍵字、字符串等)。
我們還可以讓函數名也高亮起來,在C:\Program Files\Vim\vim72\syntax下找到?c.vim?和?cpp.vim,分別添加以下內容:
syn match cFunction "\<[a-zA-Z_][a-zA-Z_0-9]*\>[^()]*)("me=e-2
syn match cFunction "\<[a-zA-Z_][a-zA-Z_0-9]*\>\s*("me=e-1
hi cFunction gui=NONE guifg=#B5A1FF
重新打開gvim,效果如下:

用Gvim建立IDE編程環境 (Windows篇) - guo034 - guo034的博客

4.程序中跳轉。
將ec57w32.zip解壓,在解壓后文件夾中找到ctags.exe,將其復制到C:\ProgramFiles\Vim\vim72下,并編輯_vimrc文件,添加以下內容:
set tags=tags;
set autochdir
打開cmd命令行,切換到你要查看的源代碼的根目錄處,運行
ctags -R
將會在此目錄處生成一個tags文件。
用gvim打開一個代碼文件,將光標放到某一函數名上,如下圖的UpdateViewByPosNo(),按下"ctrl+]",光標會自動跳轉到定義處。

用Gvim建立IDE編程環境 (Windows篇) - guo034 - guo034的博客

按下"ctrl+T"會跳回到原來的位置。
變量、結構體、宏等等,都可以這樣做。
當你的源文件有更新時,只能重新運行ctags -R命令,來更新tags文件。

5.窗口管理。
將taglist_45.zip解壓,解壓后包含一個doc文件夾和一個plugin文件夾,將其中內容分別復制到C:\Program Files\Vim\vim72下的doc及plugin中。
在_vimrc文件中加入以下內容:
let Tlist_Show_One_File=1
let Tlist_Exit_OnlyWindow=1
用gvim打開代碼文件(已生成過tags文件),:Tlist,TagList窗口即出現在左側。
用相同的方法將winmanager.zip解壓和拷貝,在_vimrc文件中加入以下內容:
let g:winManagerWindowLayout='FileExplorer|TagList'
nmap wm :WMToggle<cr>
用gvim打開代碼文件,normal狀態下輸入命令"wm",窗口如下

用Gvim建立IDE編程環境 (Windows篇) - guo034 - guo034的博客

其中左上是netrw窗口(瀏覽文件),左下是TagList窗口,再次輸入"wm"時這兩個窗口會關閉。

6.多文件編輯。
將minibufexpl.vim復制到C:\Program Files\Vim\vim72\plugin,在_vimrc中添加:
let g:miniBufExplMapCTabSwitchBufs=1
let g:miniBufExplMapWindowsNavVim=1
let g:miniBufExplMapWindowNavArrows=1
當用gvim打開兩個或兩個以上的文件時,會自動彈出MiniBufExplorer窗口,如下圖

用Gvim建立IDE編程環境 (Windows篇) - guo034 - guo034的博客

ctrl+Tab,切換到前一個buffer,并在當前窗口打開文件;
ctrl+shift+Tab,切換到后一個buffer,并在當前窗口打開文件;
ctrl+箭頭鍵,可以切換到上下左右窗口中;
ctrl+h,j,k,l,切換到上下左右的窗口中。


7.快速切換頭文件/源文件。
將a.vim復制到C:\Program Files\Vim\vim72\plugin,在_vimrc中添加:
nnoremap <silent> <F12> :A<CR>
用gvim打開源碼文件后,按F12即可以在c/h文件中切換,也可以通過輸入:A實現。

8.在工程中快速查找。
將grep.vim復制到C:\Program Files\Vim\vim72\plugin,在_vimrc中添加:
nnoremap <silent> <F3> :Grep<CR>
用gvim打開源碼文件,并將光標定位到要查找的內容上,按下F3,確定要查找的內容和搜索范圍,gvim會在彈出的QuickFix窗口中列出所有符合條件的搜索結果。如下圖

用Gvim建立IDE編程環境 (Windows篇) - guo034 - guo034的博客

確定查找內容時,支持正則表達式。

9.高亮的書簽。
將visualmark.vim復制到C:\Program Files\Vim\vim72\plugin。
用gvim打開源碼文件,將光標定位在需要添加書簽的地方,按下ctrl+F2,即添加了書簽。

用Gvim建立IDE編程環境 (Windows篇) - guo034 - guo034的博客

使用F2在書簽之間正向切換,shift+F2反向切換。

?

原文地址:http://www.cnblogs.com/einyboy/archive/2012/11/10/2763607.html

轉載于:https://www.cnblogs.com/davygeek/p/4269855.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/375317.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/375317.shtml
英文地址,請注明出處:http://en.pswp.cn/news/375317.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Win32ASM-進程學習[3]-讀寫進程空間

invoke ReadProcessMemory,hProcess,lpBaseAddress,lpBuffer,dwSize,lpNumberOfBytesReadinvoke WriteProcessMemory,hProcess,lpBaseAddress,lpBuffer,dwSize,lpNumberOfBytesWritten hProcess 指定將要被讀寫的目標進程句柄 lpBaseAddress 目標進程中被讀寫的起始線性地址. …

MongoDB使用記錄

安裝服務 使用以下命令將MongoDB安裝成為Windows服務。筆者的MongoDB目錄為D:\Program Files\mongodb mongod --logpath "D:\Program Files\mongodb\data\logs.txt" --logappend --dbpath "D:\Program Files\mongodb\data" --directoryperdb --serviceName…

OC基礎知識

Object C 語言基礎 第一節總括 這一節是對Objective-C(以后簡稱OC)的簡要介紹,目的是使讀者對OC有一個概括的認識。 1.面象的讀者 在閱讀本文之前,應具備使用與C類似的編程語言(如C,C,JAVA)的一些經驗,同時熟悉面向對象編程。 2.OC簡介 OC是以SmallTalk為基礎&#xff0c;建立…

Windows使用篩選器來處理異常

很久木有管博客了 最近也沒有學什么 Dos系統下發生異常后,系統會調用int 24h服務例程,然后根據中斷的返回值決定下一步要做什么,他會在屏幕上顯示ignore Retry Fail Abort 讓用戶選擇進而進行下一步操作 這樣的話 只要應用程序截取int 24h中斷,就可以隨意的"胡作非…

Android 高級編程 RecyclerView 控件的使用

RecyclerView 是Android 新添加的一個用來取代ListView的控件&#xff0c;它的靈活性與可替代性比listview更好。 看一下繼承關系&#xff1a; ava.lang.Object ?android.view.View ?android.view.ViewGroup ?android.support.v7.widget.RecyclerViewKnown Direct …

Android下點亮LED

http://blog.csdn.net/cpj_phone/article/details/43562551轉載于:https://www.cnblogs.com/Ph-one/p/4276974.html

SEH處理異常

Win32為每個線程定義了一個線程信息塊,其中保存了線程的一些屬性數據,線程信息塊的屬性被定義為NT_TIB結構 typedef struct _NT_TIB { struct _EXCEPTION_REGISTRATION_RECORD *ExceptionList; PVOID StackBase; PVOID StackLimit; PVOID SubSystemTib; union { PVOID FiberDa…

Asp.net MVC 4新項目中創建area的后續操作

Asp.net MVC 4新項目中創建area后&#xff0c;往往HomeController與area的HomeController路由發生混淆&#xff0c;需要手工設置一些地方避免mvc無法識別默認路由的狀況。 無廢話具體步驟&#xff1a; 1. 檢查早Global.asax和\App_Start\RouteConfig.cs中是否已經自動添加了Are…

55-混沌操作法之我見:一、逆勢操作.(2015.2.7)

混沌操作法之我見&#xff1a;一、逆勢操作 首先談談&#xff0c;均線以及鱷魚線。單獨的市場價格表達了t時刻價格的個體情況&#xff0c;均線表達了一段時間內價格的綜合情況。t時刻的價格與均線的比較&#xff0c;表達了考慮了過去以及當前綜合價格的比較情況&#xff0c;即t…

SEH鏈和展開操作

每次我們定義了一個新的SEH異常處理回調函數,EXCEPTION_REGISTRATION結構的prev字段都被要求填寫上一個EXCEPTION_REGISTRATION結構的地址,隨著應用程序對模塊的調用一層層深入下去的時候,那么最后回調函數會形成一個SEH鏈 當程序中有多個線程在運行的時候,每個線程中都會存在各…

spring的基本知識

首先是回顧一下spring的基本知識 1、controller 控制器&#xff08;注入服務&#xff09; 2、service 服務&#xff08;注入dao&#xff09; 3、repository dao&#xff08;實現dao訪問&#xff09; 4、component &#xff08;把普通pojo實例化到spring容器中&#xff0c;相當于…

vs2010 EF4.0 訪問mysql

需要安裝mysql-connector-net-6.3.5 6.8.9的安裝完后在dbfirst里找不到對應的提供程序 鏈接字符串里需要 指定下編碼(如果不是gbk的話) <add name"sourceEntities" connectionString"metadatares://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;pr…

Win32ASM 變長參數的理解

C語言里面 提供了一些宏 可以使用變長參數 int MsgPrintf(INT dwszBuffer,TCHAR* szCaption,TCHAR* szFormat,...){LPVOID lpszBuffer;va_list pArgList;va_start(pArgList,szFormat);lpszBuffer HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,100);_vsntprintf((LPTSTR)lpsz…

jquery判斷一個div的邊界是否超出另外一個div的邊界

摘要&#xff1a;本文簡單介紹jquery判斷一個div的邊界是否超出另外一個div的邊界&#xff0c;如果超出邊界做出相應的處理。 1、實現效果 判斷前 判斷后 2、實現思路 實現類似的判斷&#xff0c;主要是獲取兩個div在瀏覽器中的上下左右的四至&#xff0c;在jquery中&#xff0…

Gson解析Json格式數據

//數據定義&#xff1a;class User{ String name; String password; String getName(){}void setName(){}}Gson gsonnew Gson(); ////解析一條json數據&#xff1a;令str為[{"name":"21001","password":"21001"}] User usernew User()…

進程的細節

從今天開始,重新學習一些細節性質的東西 一.在VS開發環境中,應用程序的入口點: _tWinMain WinMainCRTStartup _tWinMain wWinMainCRTStartup _tmain mainCRTStartup _tmain wmainCRTStartup 相關的介…

maven環境快速搭建(轉)

最近&#xff0c;開發中要用到maven&#xff0c;所以對maven進行了簡單的學習。因為有個maven高手在身邊&#xff0c;所以&#xff0c;很快就上手了&#xff0c;我這里算是自我總結吧。關于maven是什么東東&#xff0c;請參考其它文章。 ----------------準備工作-------------…

cocos2d-x3.0 相對布局(一)

2dx相對布局和Android非常類似。假設前完成Android它應該是easy入門。Size widgetSize Director::getInstance()->getWinSize();Text* alert Text::create("Layout", "fonts/Marker Felt.ttf", 30 );alert->setColor(Color3B(159, 168, 176));aler…

管理員以標準權限運行時

在XP時代,大多數用戶都用一個管理員(administrator)帳號來登錄Windows 利用這個賬戶,用戶幾乎能沒有任何限制的訪問重要的系統資源,因為該賬戶被授予了很高的權限,一旦用這個帳號登錄了xp以及xp之前的操作系統,Windows操作系統就會創建一個安全令牌(security token).每當有代碼…

HDU 4791 amp; ZOJ 3726 Alice#39;s Print Service (數學 打表)

題目鏈接&#xff1a; HDU:http://acm.hdu.edu.cn/showproblem.php?pid4791 ZJU:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId5072 Problem DescriptionAlice is providing print service, while the pricing doesnt seem to be reasonable, so people using…