vim插件使用


1 ctags

下載Ctags源代碼,解壓,用make命令安裝。

然后去你的源碼目錄,如果你的源碼是多層的目錄, 就去最上層的目錄, 在該目錄下運行命令: ctags –R,會產生一個名叫tags文件,將該文件拷貝到$HOME/.vim/tags目錄下。

在vim中運行命令“:set tags=$HOME/.vim/tags/tags”,也可以將這個命令放在$HOME/.vimrc文件中。當要查詢某個函數的定義時,將光標放在該函數上,按<C-]>鍵,就會跳轉到該函數的定義處,按<C-t>鍵是返回。

不過還有一個小瑕疵, 你修改程序后, 比如增加了函數定義, 刪除了變量定義, tags文件不能自動rebuild, 你必須手動再運行一下命令:ctags –R。

2 TagList 插件

高效地瀏覽源碼, 其功能就像vc中的workpace, 那里面列出了當前文件中的所有宏、全局變量, 函數名等.

下載地址:http://www.vim.org/scripts/script.php?script_id=273

下載taglist壓縮包, 然后把解壓的兩個文件taglist.vim 和 taglist.txt 分別放到$HOME/.vim/plugin 和 $HOME/.vim/doc 目錄中。

首先在$HOME/.vimrc中加入下面兩句話:

let Tlist_Show_One_File=1

let Tlist_Exit_OnlyWindow=1

進入vim后用Tlist命令打開taglist窗口。

3 WinManager 插件

管理各個窗口, 或者說整合各個窗口。

下載地址:http://www.vim.org/scripts/script.php?script_id=95

下載WinManager.zip壓縮包, 解壓后把*.vim文件放到 $HOME/.vim/plugin目錄中,把*.txt文件放到 $HOME/.vim/doc目錄中。

下面的一些命令來進行常用的目錄和文件操作:

<F1>

顯示幫助

<cr>

如果光標下是目錄, 則進入該目錄; 如果光標下文件, 則打開該文件

-

返回上級目錄

c

切換vim 當前工作目錄正在瀏覽的目錄

d

創建目錄

D

刪除目錄或文件

i

切換顯示方式

R

文件或目錄重命名

s

選擇排序方式

x

定制瀏覽方式, 使用你指定的程序打開該文件:

現在在你的~/.vimrc中增加下面幾句:

let g:winManagerWindowLayout = "BufExplorer|FileExplorer|TagList"

let g:winManagerWidth = 30

nmap <C-W><C-F> :FirstExplorerWindow<cr>

nmap <C-W><C-B> :BottomExplorerWindow<cr>

nmap <silent> <leader>wm :WMToggle<cr>

在vim中按\wm就會彈出winManager窗口來,再按\wm就會退出。

4 QuickFix 窗口

輸出一些供選擇的結果, 可以被很多命令調用, 更詳細的介紹和使用方法請用下面的命令打開QuickFix的手冊來學習吧:help quickfix。

寫好一個由錯誤的c程序,用vim打開該c程序,並輸入:make命令,可以通過命令:cw來調出編譯器報的出錯信息,並可以根據出錯信息調到出錯的位置。命令:cn和:cp分別切換到上一個結果和下一個結果。

5 MiniBufExplorer

快速瀏覽和操作Buffer

下載地址:http://www.vim.org/scripts/script.php?script_id=159,將下載的 minibufexpl.vim文件丟到$HOME/.vim/plugin文件夾中即可。

用vim打開多個文件時,vim最上方會出現一個MiniBufExplorer窗口,其中列出了當前所有已經打開的buffer,當你把光標置於這個窗口時, 有下面幾個快捷鍵可以用:

<Tab>

向前循環切換到每個buffer名上

<S-Tab>

向后循環切換到每個buffer名上

<Enter>

在打開光標所在的buffer

d

刪除光標所在的buffer

6 A插件

將.h文件與.c文件來回切換。

下載地址:http://www.vim.org/scripts/script.php?script_id=31,將下載的a.vim放置$HOME/.vim/plugin中。

安裝好a.vim后有下面的幾個命令可以用了:

:A

在新Buffer中切換到c/h文件

:AS

橫向分割窗口並打開c/h文件

:AV

縱向分割窗口並打開c/h文件

:AT

新建一個標簽頁並打開c/h文件

7 new-omni-completion(全能補全)

該功能vim自帶的,可以輸命令:help new-omni-completion查看,不過還要有tags功能的支持。

需在$HOME/.vimrc中增加下面兩句:

filetype plugin indent on

set completeopt=longest,menu

tags的用法與上面的tags用法相同。

一些快捷鍵:

Ctrl+P

向前切換成員

Ctrl+N

向后切換成員

Ctrl+E

表示退出下拉窗口, 並退回到原來錄入的文字

Ctrl+Y

表示退出下拉窗口, 並接受當前選項

如果你增加了一些成員變量, 全能補全還不能馬上將新成員補全, 需要你重新生成一下tags文件, 但是你不用重啟vim, 只是重新生成一下tags文件就行了, 這時全能補全已經可以自動補全了, 還真夠"全能"吧.
vim中的其他補全方式還有:

Ctrl+X Ctrl+L

整行補全

Ctrl+X Ctrl+N

根據當前文件里關鍵字補全

Ctrl+X Ctrl+K

根據字典補全

Ctrl+X Ctrl+T

根據同義詞字典補全

Ctrl+X Ctrl+I

根據頭文件內關鍵字補全

Ctrl+X Ctrl+]

根據標簽補全

Ctrl+X Ctrl+F

補全文件名

Ctrl+X Ctrl+D

補全宏定義

Ctrl+X Ctrl+V

補全vim命令

Ctrl+X Ctrl+U

用戶自定義補全方式

Ctrl+X Ctrl+S

拼寫建議

8 自動補全插件-NeoComplCache

下載地址:http://www.vim.org/scripts/script.php?script_id=2620

是解壓后文件夾里面的文件,好像是四個,autoload、doc、plugin、README.MD,直接放到.vim里。

在~/.vimrc文件里加入自動啟動的命令: let g:neocomplcache_enable_at_startup = 1。

9 c插件

作為一個程序員,在編碼時你常常有如下的重復操作:
1. 給文件或者函數說明
2. 給函數添加注釋,或者添加一個注釋快
3. 添加一段已有代碼 (:r !cat filename)
4. 檢查代碼語法
5. 讀函數的幫助文檔
6. 注釋掉一塊代碼,將"//"轉換為/* */

C.vim即C-Support vim,能夠幫助C程序員[當然還有使用C++ 的家伙]很好的完成上述工作,為你節約時間,並保護你的鍵盤。插件作者Fritz Mehner,編寫c.vim的宗旨是“Write and run programs. Insert statements, idioms, comments”。

下載地址:http://www.vim.org/scripts/download_script.php?src_id=9679,解壓,有c-support、ftplugin、doc、plugin四個文件,拷貝到$HOME/.vim/目錄下。並用命令filetype plugin on激活插件功能。

功能一:自動為*.c文件添加文件頭說明

當你打開一個擴展名為.c的文件,在文件開始處會自動加上如下的描述,並且將光標定位到description處,此時是insert mode可直接鍵入文件描述。

當然你可以改變AUTHOR COMPANY等得默認值,修改稿c-support/templates/Templates中的:

|AUTHOR|    = geekstuff

|AUTHORREF| = gk

|EMAIL|     = subscribe@geekstuff

|COMPANY|   = thegeekstuff.com

功能二:插入一個函數\if

當需要創建一個新函數時,只要在正常模式(ESC)鍵入\if,VIM會提示鍵入函數名,會得到默認函數內容。

功能三:插入main函數\im

與功能二類似,在正常模式下鍵入\im, 得到默認的main函數內容。

功能五: 添加一個注釋塊 \cfr

添加一個注釋塊,在正常模式下鍵入\cfr,會得到一個注釋塊,並且光標被定位到注釋塊內,直接可鍵入注釋。

功能六:包含(include)一個頭文件 \p<

在正常模式下鍵入\p<, 會得到“#include <>”,並且光標被定位到尖括號內,可以直接鍵入要包含的頭文件名

功能七: 保存文件,編譯后立即執行

保存后編譯\rc,運行\\r
功能八:插入預先編輯好的程序塊\nr

在安裝插件時,插件自帶了一些編譯好的代碼,你可以把這些代碼插入你的程序中。

在c-support/codesnippets文件中

Makefile  calloc_double_matrix.c  main.c   print_double_array.c.noindent

Makefile.multi-target.template  calloc_int_matrix.c  main.cc  print_int_array.c.noindent

你也可以自己編寫一些常用模板代碼放在c-support/codesnippets/。當然在你讀代碼的時候也可以保存某些代碼片段。方法:選中想要保存的代碼片段,鍵入\nw,給它取一個名字。下次你就可以用過\nr使用這段代碼了。

10 bufexplorer插件

下載地址:http://www.vim.org/scripts/script.php?script_id=42,將bufexplorer.vim放入$HOME/.vim/plugin目錄下。

打開vim,輸入\be在當前窗口瀏覽緩存,\bs水平打開一個窗口瀏覽緩存,\bv垂直打開一個窗口瀏覽緩存。

11 查看插件自帶的文檔

把插件自帶的文檔放入$HOME/.vim/doc目錄下

進入vim,輸入命令:helptags $HOME/.vim/doc,vim就會自動讀取$HOME/.vim/doc目錄下的文檔,輸入:help local-additions即可跳轉到$HOME/.vim/doc中的所有文檔列表處,用<C]>選擇要看的文檔即可。

12 我的vim配置文件

 1 let Tlist_Show_One_File=1
 2 let Tlist_Exit_OnlyWindow=1
 3 let Tlist_Auto_Open=1
 4 "let Tlist_Ctags_Cmd='/usr/bin/ctags'
 5 "set foldcolumn=0
 6 "set foldmethod=indent 
 7 "set foldlevel=3 
 8 "set foldenable              " 開始折疊
 9 " 不要使用vi的鍵盤模式,而是vim自己的
10 set nocompatible
11 " 語法高亮
12 set syntax=on
13 " 去掉輸入錯誤的提示聲音
14 set noeb
15 " 在處理未保存或只讀文件的時候,彈出確認
16 set confirm
17 " 自動縮進
18 set autoindent
19 set cindent
20 " Tab鍵的寬度
21 set tabstop=4
22 " 統一縮進為4
23 set softtabstop=4
24 set shiftwidth=4
25 " 不要用空格代替制表符
26 set noexpandtab
27 " 在行和段開始處使用制表符
28 set smarttab
29 " 顯示行號
30 set number
31 " 歷史記錄數
32 set history=1000
33 "禁止生成臨時文件
34 set nobackup
35 set noswapfile
36 "搜索忽略大小寫
37 set ignorecase
38 "搜索逐字符高亮
39 set hlsearch
40 set incsearch
41 "行內替換
42 set gdefault
43 "編碼設置
44 set enc=utf-8
45 set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
46 "語言設置
47 set langmenu=zh_CN.UTF-8
48 set helplang=cn
49 " 我的狀態行顯示的內容(包括文件類型和解碼)
50 "set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}
51 "set statusline=[%F]%y%r%m%*%=[Line:%l/%L,Column:%c][%p%%]
52 " 總是顯示狀態行
53 set laststatus=2
54 " 命令行(在狀態行下)的高度,默認為1,這里是2
55 set cmdheight=2
56 " 偵測文件類型
57 filetype on
58 " 載入文件類型插件
59 filetype plugin on
60 " 為特定文件類型載入相關縮進文件
61 filetype indent on
62 " 保存全局變量
63 set viminfo+=!
64 " 帶有如下符號的單詞不要被換行分割
65 set iskeyword+=_,$,@,%,#,-
66 " 字符間插入的像素行數目
67 set linespace=0
68 " 增強模式中的命令行自動完成操作
69 set wildmenu
70 " 使回格鍵(backspace)正常處理indent, eol, start等
71 set backspace=2
72 " 允許backspace和光標鍵跨越行邊界
73 set whichwrap+=<,>,h,l
74 " 可以在buffer的任何地方使用鼠標(類似office中在工作區雙擊鼠標定位)
75 ""set mouse=a
76 ""set selection=exclusive
77 ""set selectmode=mouse,key
78 " 通過使用: commands命令,告訴我們文件的哪一行被改變過
79 set report=0
80 " 在被分割的窗口間顯示空白,便於閱讀
81 set fillchars=vert:\ ,stl:\ ,stlnc:\
82 " 高亮顯示匹配的括號
83 set showmatch
84 " 匹配括號高亮的時間(單位是十分之一秒)
85 set matchtime=1
86 " 光標移動到buffer的頂部和底部時保持3行距離
87 set scrolloff=3
88 " 為C程序提供自動縮進
89 set smartindent
90 " 高亮顯示普通txt文件(需要txt.vim腳本)
91 au BufRead,BufNewFile *  setfiletype txt
92 set bg=dark

 

13 參考

http://blog.csdn.net/guolb57/article/details/7013076

http://www.cnblogs.com/windowswind/archive/2012/03/22/2450079.html

http://blog.csdn.net/tge7618291/article/details/4216977


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM