vim有三種模式:輸入模式,命令模式,底行模式,使用esc進入命令模式,在命令模式下按英文的冒號,進入底行模式;命令行模式下按i進入輸入模式。vim編輯文件是將文件內容複製到緩衝區顯示在屏幕上。javascript
vim的啓動php
退出vim(底行模式(last line mode))css
vimrc配置設置html
正則表達式java
$ 匹配行尾 ^ 匹配行首 \< 匹配單詞詞首 \> 匹配單詞詞尾 \| 或操做符 \& 與操做符 . 匹配任意一個字符 * 匹配0-任意個 \+ 匹配1-任意個 \? 匹配0-1個 \{n,m} 匹配n-m個 \{-n,m} 與\{n,m}同樣,儘量少次數地重複 \{n} 匹配n個 \{n,} 匹配n-任意個 \{,m} 匹配0-m個 \_. 匹配包含換行在內的全部字符 \{-} 表示前一個字符可出現零次或屢次,但在整個正則表達式能夠匹配成功的前提下,匹配的字符數越少越好 \= 匹配一個無關緊要的項 \_s 匹配空格或斷行 \_[] \* 匹配 * 字符 \. 匹配 . 字符 \/ 匹配 / 字符 \\ 匹配 \ 字符 \[ 匹配 [ 字符 [abc] 匹配方括號中的任意一個字符。可使用-表示字符範圍,如[a-z0-9]匹配小寫字母和阿拉伯數字 [^abc] 在方括號內開頭使用^符號,表示匹配除方括號中字符以外的任意字符 \d 匹配阿拉伯數字,等同於[0-9] \D 匹配阿拉伯數字以外的任意字符,等同於[^0-9] \x 匹配十六進制數字,等同於[0-9A-Fa-f] \X 匹配十六進制數字,等同於[^0-9A-Fa-f] \w 匹配單詞字母,等同於[0-9A-Za-z_] \W 匹配單詞字母以外的任意字符,等同於[^0-9A-Za-z_] *\t 匹配 <TAB> 字符 \s 匹配空白字符,等同於[ \t] \S 匹配非空白字符,等同於[^ \t] \a 全部的字母字符. 等同於[a-zA-Z] \l 小寫字母 [a-z] \L 非小寫字母 [^a-z] \u 大寫字母 [A-Z] \U 非大寫字母 [^A-Z] 替換變量:在正規表達式中使用 \( 和 \) 符號括起正規表達式,便可在後面使用\1、\2等變量來訪問 \( 和 \) 中的內容。 函數式 :s/替換字符串/\=函數式 在函數式中可使用 submatch(1)、submatch(2) 等來引用 \1、\2 等的內容,而submatch(0)能夠引用匹配的整個內容。 實例: :%s/\s\+$// 去掉全部的行尾空格 :%s/\(\s*\n\)\+/\r/ 去掉全部的空白行 :%s#\s*//.*## 去掉全部的「//」註釋,即去掉全部的// :%s#\s*/\*\_.\{-}\*/\s*##g 去掉全部的「/* */」註釋 :g/^\s*$/d 刪除只有空白的行 :s/\(\w\+\)\s\+\(\w\+\)/\2\t\1 將 data1 data2 修改成 data2 data1 :%s/\(\w\+\), \(\w\+\)/\2 \1/ 將 Doe, John 修改成 John Doe :%s/\<id\>/\=line(".") 將各行的 id 字符串替換爲行號 :%s/\(^\<\w\+\>\)/\=(line(".")-10) .".". submatch(1) 將每行開頭的單詞替換爲(行號-10).單詞的格式,如第11行的word替換成1. word :/OB/+1,$!sort 排序 :n,m sort 排序 n,m 行 :%s/<[^>;]*>;//g 去掉html的的標記 轉義字符 彷佛 vim 中的轉義符與其它的工具備些差別 \r 匹配 <CR> 鍵 \n 匹配行末
編輯模式python
編輯模式
ctrl p 自動補全,向上搜索匹配詞,在 vim 打開的全部文檔中查找,不斷輸入命令會循環查找
ctrl x f 補全文件名
ctrl x l 自動補齊正行文本,僅在本窗口出現的文檔中匹配
命令模式linux
h 向左移動一個字符 l 向右移動一個字符 j 向下移動一行 k 向上移動一行 w 將光標移到下一個單詞的開頭 W 移到下一個字的開頭,忽略標點符號 b 光標回到上個 word 的第一個字母 fa 移到下一個 a 字符處 nfa Fa t, 移到逗號前的字符 Ta B 移到前一個字的開頭,忽略標點符號 BACK e 將光標移到下一個單詞的結尾 E 移到下一個字的結尾,忽略標點符號 END J 合併光標所在行及下一行爲一行(依然在命令模式) gg 光標回到文件首部 ngg 跳到第n行 GG 光標到文件最後一行首部 gf 打開當前光標所在word的文件,沒有這個文件則建立他。注意要先保存所做的更改 0 到本行頭 $ 到文行末 n+ 光標下移n行 n- 光標上移n行 H 光標移動到屏幕頂行 M 光標移動到屏幕中間 L 光標移動到屏幕最後一行 zt 把當前行置於屏幕頂端 z. 把當前行至於屏幕中間 zb 把當前行至於屏幕底端 '' 移動光標到上一個標記處 '. 移動光標到上一次的修改行 `. 移動光標到上一次的修改點 50% 光標置於文件中間 ctrl J 跳轉到當前光標所在單詞對應的主題 ctrl O 回到前一個光標的位置 [[ 光標移到文件開始位置 ]] 光標移到文件結尾 ( 光標移動到句首,以一個空白行分隔判斷段落 ) 光標移動到句尾 { 光標移動到段落開頭,以一個空白行判斷段落 } 光標移動到段落結尾 gd 跳轉到局部變量的定義處; gD 跳轉到全局變量的定義處,從當前文件開頭開始搜索; g; 上一個修改過的地方; g, 下一個修改過的地方; [[ 跳轉到上一個函數塊開始,須要有單獨一行的{。 ]] 跳轉到下一個函數塊開始,須要有單獨一行的{。 [] 跳轉到上一個函數塊結束,須要有單獨一行的}。 ][ 跳轉到下一個函數塊結束,須要有單獨一行的}。 [{ 跳轉到當前塊開始處; ]} 跳轉到當前塊結束處; [/ 跳轉到當前註釋塊開始處; ]/ 跳轉到當前註釋塊結束處; % 不只能移動到匹配的(),{}或[]上,並且能在#if,#else, #endif之間跳躍。 % 括號匹配,移動到匹配的括號上,光標必須在括號上,匹配括號移動,包括 「 (, {, [ 」 * 搜索匹配光標當前所在的單詞,移動光標到下一個單詞 # 搜索匹配光標當前所在的單詞,移動光標到上一個單詞 nfx 在當前行查找光標後第n個x(通常直接fx) 模式轉換 a 在當前光標位置的右邊添加文本 A 在當前行的末尾位置添加文本 i 在當前光標位置的左邊添加文本 I 在當前行的開始處添加文本(非空字符的行首) o 在當前行的下面新建一行 O 在當前行的上面新建一行 R 替換(覆蓋)當前光標位置及後面的若干文本,至關於插入 s 刪除當前的字符後進入輸入模式 cw 刪除當前word並進入輸入模式 ncw 刪除當前word開始的n個word後進入輸入模式 cc 刪除當前行後進入輸入模式 ncc 刪除當前行開始的n行後進入輸入模式 複製 刪除(剪切) 粘貼 恢復 u 撤銷 ctrl r 恢復,只對u有效 U 撤銷對光標所在那一行所作的修改 x 刪除光標所在的字符 nx 刪除從光標開始的n個字符 X 刪除光標以前(其左邊)的一個字符 r 修改光標所在的字符,按一下,再按想輸入的字符 J 合併兩行 d 刪除可視區域的內容 dd 刪除當前行 dfa 刪除當前字符直到第一個a字符 dt" 刪除全部的內容,直到遇到雙引號 ndd 向下刪除當前行在內的n行 dw 刪除一個詞和它後面的空格,將光標放置到該詞的開頭 ndw 刪除光標及光標後的n個word d^ 刪除行中光標前面的字符 d$ 刪除行中光標及其右邊的字符 d0 同d^ D 同d$ dG 刪除包含當前行到文件尾的內容 ggdG 刪除整個文件 nyl 複製當前n個字符 y2fa 複製當前字符直到第二個a字符 y0 複製當前光標到行首的內容 y$ 複製當前光標到行末的內容 yG 複製當前行到最後一行 yy 當前行復制到緩存區,也能夠用 ayy 複製, a 爲緩衝區,a也能夠替換爲a到z的任意字母,能夠完成多個複製任務 yw 複製當前光標處的單詞 nyy 將當前行向下n行復制到緩衝區,也能夠用 anyy 複製, a 緩衝區,a也能夠替換爲a到z的任意字母,能夠完成多個複製任務 yw 複製從光標開始到詞尾的字符 nyw 複製從光標開始的n個單詞 y^ 複製從光標到行首的內容 y$ 複製從光標到行尾的內容 guw 光標下的單詞變爲小寫 gUw 光標下的單詞變爲大寫 ~ 大小寫轉換 xp 左右交換光標處兩字符的位置 p 粘貼到當前光標後面 P 粘貼到當前光標前面 ga 顯示光標下的字符在當前使用的encoding下的內碼 宏 . 重複上一個編輯動做 qx 記錄底行模式下輸入的命令,並列表呈現出來 q 中止錄製 @x 播放宏a @@ 播放最近的宏 zf 建立摺疊的命令(需加方向鍵),能夠在一個可視區域上使用該命令 zd 刪除當前行的摺疊 zD 刪除當前行的摺疊 zfap 摺疊光標所在的段 zo 打開摺疊的文本,空格也能夠 zc 收起摺疊 za 打開/關閉當前摺疊 zr 打開嵌套的折行 zm 收起嵌套的折行 zR(zO) 打開全部折行 zM(zC) 收起全部折行 zj 跳到下一個摺疊處 zk 跳到上一個摺疊處 zi enable/disable fold = 使用v選定代碼後,按'='會自動縮進代碼 > 輸入此命令則光標所在行向右移動一個tab > 使用v選定代碼後,按'>'會將代碼總體右移 5>> 輸入此命令將光標在內的5行向右移動一個tab v 可視模式,單個字符 V 可視模式,行,能夠選擇連續的多個行 ctrl v 可視模式,列 ctrl l 刷新屏幕 自動補全 ctrl p 向上搜索匹配詞 ctrl n 向下 移動 ctrl e 光標向下卷一行 ctrl y 光標向上卷一行 翻頁 ctrl u 光標向下卷半頁 ctrl d 光標向上卷半頁 ctrl f 光標向下卷一頁 ctrl b 光標向上卷一頁 ctrl q 掛起時使用 ctrl z 暫時掛到後臺 ctrl ] 跳到函數定義的地方 ctrl g 顯示文件名,當前光標所在行的行號,總的行數,以及當前行所在文件中的百分比和當前光標所在的列的信息,同':f' ctrl w 窗口切換,連按兩下,按方向鍵 ctrl w s 上下分割當前打開的文件 ctrl w v 左右分割當前打開的文件 ctrl w c 關閉當前窗口 ctrl w q 關閉當前窗口,若是隻剩最後一個了,則退出Vim ctrl w h 把光標移到左邊的屏 ctrl w H 屏幕向左移動 ctrl w j 把光標移到下邊的屏 ctrl w J 屏幕向下移動 ctrl w k 把光標移到上邊的屏 ctrl w K 屏幕向上移動 ctrl w l 把光標移到右邊的屏 ctrl w L 屏幕向右移動 ctrl w = 讓全部的屏都有同樣的高度 ctrl W + 要擴大窗口 ctrl W - 要縮小窗口
底行模式git
多文件多窗口的操做github
vim -On file1 file2 ... 使用大寫的O參數來垂直分屏,n是數字,表示分紅幾個屏 vim -on file1 file2 ... 使用小寫的o參數來垂直分屏 :sp filename 上下分割,並打開一個新的文件 :vsp filename 左右分割,並打開一個新的文件 :rew 多個文件時回到首個文件 :n 切換到下一個文件 :N 切換到上一個文件 :bn :bp 同時打開不少文件,使用這兩個命令來切換下一個或上一個文件 :split filename 分割窗口,將會複製文件內容 :vsplit filename 分割窗口 :new filename :vnew filename :close 關閉當前窗口 :only 只留下當前編輯的窗口,關閉其餘的編輯窗口 :qa 所有退出,同qall :wa 所有寫入,同wall :wqa 同wqall :args 顯示編輯名單中的各個文件名列表 :files buffers ls 列出目前 buffer 中的全部文件 ctrl w 窗口切換,連按兩下,按方向鍵 ctrl w s 上下分割當前打開的文件 ctrl w v 左右分割當前打開的文件 ctrl w c 關閉當前窗口 ctrl w q 關閉當前窗口,若是隻剩最後一個了,則退出Vim ctrl w h 把光標移到左邊的屏 ctrl w H 屏幕向左移動 ctrl w j 把光標移到下邊的屏 ctrl w J 屏幕向下移動 ctrl w k 把光標移到上邊的屏 ctrl w K 屏幕向上移動 ctrl w l 把光標移到右邊的屏 ctrl w L 屏幕向右移動 ctrl w = 讓全部的屏都有同樣的高度 ctrl W + 要擴大窗口 ctrl W - 要縮小窗口 窗口分割時,進行切換的按鍵熱鍵須要鏈接兩次,好比從下方窗口移動光標到上方窗口,須要<c-w><c-w>k,很是麻煩,如今重映射爲<c-k>,切換的時候會變得很是方便 nnoremap <C-h> <C-w>h nnoremap <C-j> <C-w>j nnoremap <C-k> <C-w>k nnoremap <C-l> <C-w>l
文檔的摺疊,縮進正則表達式
:set foldenable 開始摺疊 :set foldmethod=syntax 設置語法摺疊 :set foldcolumn=0 設置摺疊區域的寬度 :setlocal foldlevel=1 設置摺疊層數爲1 :set foldclose=all 設置爲自動關閉摺疊 zf 摺疊行(需加方向鍵) zo 展開摺疊,空格也能夠 zc 關閉摺疊 用空格鍵來開關摺疊(默認) nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR> 使用v選定代碼後,按'='會自動縮進代碼。 使用v選定代碼後,按'>'會將代碼總體右移。
文件格式
有三種文件格式:unix, dos, mac. 三種格式的區別主要在於回車鍵的編碼:dos 下是回車加換行,unix 下只有 換行符,mac 下只有回車符。 :e ++ff=dos filename 讓vim用dos格式打開這個文件 :w ++ff=mac filename 以mac格式存儲這個文件 :set fileformats=unix,dos,mac 添加在配置文件中讓vim自動識別文件格式 :set ff
標記
使用標記能夠快速移動。到達標記後,能夠用Ctrl+o返回原來的位置。 Ctrl+o和Ctrl+i 很像瀏覽器上的 後退 和 前進 。 m{a-z} 標記光標所在位置,局部標記,只用於當前文件。 m{A-Z} 標記光標所在位置,全局標記。標記以後,退出Vim, 從新啓動,標記仍然有效。 `{a-z} 移動到標記位置。 '{a-z} 移動到標記行的行首。 `{0-9} 回到上[2-10]次關閉vim時最後離開的位置。 `` 移動到上次編輯的位置。''也能夠,不過``精確到列,而''精確到行 。若是想跳轉到更老的位置,能夠按C-o,跳轉到更新的位置用C-i。 `" 移動到上次離開的地方。 `. 移動到最後改動的地方。 :marks 顯示全部標記。 :delmarks a b 刪除標記a和b。 :delmarks a-c 刪除標記a、b和c。 :delmarks a c-f 刪除標記a、c、d、e、f。 :delmarks! 刪除當前緩衝區的全部標記。 :help mark-motions 查看更多關於mark的知識
註釋
方法一 塊選擇模式 Ctrl v 進入塊選擇模式,而後移動光標選中你要註釋的行,再按大寫的I進入行首插入模式輸入註釋符號如// 或 #,輸入完畢以後,按兩下esc鍵,Vim會自動將你選中的全部行首都加上註釋 Ctrl v 進入塊選擇模式,選中你要刪除的行首的註釋符號,注意// 要選中兩個,選好以後按d便可刪除註釋 方法二 替換命令 使用下面命令在指定的行首添加和撤銷註釋: :起始行號,結束行號s/^/註釋符/g 4,9 s/^/\/\//g,能夠將格式中的/替換爲# :起始行號,結束行號s/^註釋符//g 4,9 s/^\/\///g :vmap <F5> :s/^/\/\//<CR> 選中內容,按 F5註釋 :vmap <F6> :s/^\/\///<CR> 選中內容,按F6取消註釋 每當輸入#號時,#號都會跑到行首。 在.vimrc中加入以下幾行,便可解決這個問題。 複製代碼 代碼以下: if has("autocmd") filetype plugin indent on else set autoindent endif "has("autocmd")
統計字數
在visual(可視)模式下,選中須要統計的文本,按g,再按Ctr+g就會顯示選擇的行數,字符數。
:% s/./&/g 顯示當前文本的字符數,行數,原理是用字符本身替換本身,看替換了多少次
複製粘貼
不管是vim內部抑或外部的複製([y]ank)、刪除([d]elete)、粘貼([p]ut),在vim中都是藉助registers(寄存器)實現的,vim共有9類寄存器: 無名(unnamed)寄存器:"" 緩存最後一次操做內容; 數字(numbered)寄存器:"0 - "9 緩存最近操做內容,複製與刪除有別; 行內刪除(small delete)寄存器:"- 緩存行內刪除內容; 具名(named)寄存器:"a - "z或"A - "Z 指定時可用; 只讀(read-only)寄存器:":, "., "%, "# 分別緩存最近命令、最近插入文本、當前文件名、當前交替文件名; 表達式(expression)寄存器:"= 只讀,用於執行表達式命令; 選擇及拖拽(selection and drop)寄存器:"*, "+, "~ 存取GUI選擇文本,可用於與外部應用交互,使用前提爲系統剪切板(clipboard)可用; 黑洞(black hole)寄存器:"_ 不緩存操做內容(乾淨刪除); 模式寄存器(last search pattern):"/ 緩存最近的搜索模式。 粘貼剪切板內容 在命令模式下依次輸入「"0p」粘貼0寄存器的內容。 對於非GUI版本的vim,系統剪切板是不可用的,須安裝gvim。 設置了set mouse=a 後,按住 shift 鍵,能夠將鼠標的處理交給 X 環境,方便複製粘貼。 :map <F7> :set nu<CR> :map <F8> :set nonu<CR> :map <F9> :set paste<CR> :map <F10> :set nopaste<CR>
map
:map 輸出已定義的全部映射 map,nmap(命令模式),imap(輸入模式),vmap(選中模式) 進行命令的宏定義。置能夠預先寫到 ~/.vimrc,寫進配置文件時不用寫前面的冒號。 :nmap :nohls 取消被搜索字串的高亮 :nmap w 命令模式下轉移光標到不一樣窗口 :imap 輸入模式下運行 :nmap :%s= *$== 刪除全部行尾多餘的空格 :nmap :cl 此命令用於查看全部的編譯錯誤 :nmap :cc 此命令用於查看當前的編譯錯誤 :nmap :cn 此命令用於跳到下一個出錯位置 :nmap :cp 此命令用於跳到上一個出錯位置 :imap 同上java 中: (注, 這裏爲何說 java 中, 由於如下定義對其餘文件格式不起做用, 下文會說到如何實現這一點) :nmap :JavaBrowser 此命令用於在窗口左部分割出一個新窗口, 裏面的內容是 java 的資源樹, 包括本文件中出現的類, 類的成員變量及成員方法, 就好像 JCreator
表現的那樣。在這個窗口中輸入 ? 會看到幫助。 嘿嘿, 很好用, 不過須要 ctags 支持. :nmap :comp javac:mak -d . % 此命令用 javac 編譯 java 文件, 它會自動將光標定位到出錯點. 不過這須要定義一個 javac.vim 文件在 $VIM/compiler 下,
在 javac.vim 裏面只有兩行字:setlocal makeprg=javac, setlocal errorformat=%A%f:%l:\ %m,%-Z%p^,%-C%.%# :nmap :comp ant:mak 此命令用 ant 編譯 java 文件, 它會自動將光標定位到出錯點. 通常來講, 安裝vim 後已經有了compiler/ant.vim文件, 所以這個命令能夠
直接使用。可是須要在當前目錄下有 build.xml 文件, 固然還必須安裝 ant 才行 Buffers操做快捷方式 nnoremap <C-RETURN> :bnext<CR> nnoremap <C-S-RETURN> :bprevious<CR> Tab操做快捷方式 nnoremap <C-TAB> :tabnext<CR> nnoremap <C-S-TAB> :tabprev<CR> 關於tab的快捷鍵 map tn :tabnext<cr> map tp :tabprevious<cr> map td :tabnew .<cr> map te :tabedit map tc :tabclose<cr> 一些不錯的映射轉換語法(若是在一個文件中混合了不一樣語言時有用) nnoremap <leader>1 :set filetype=xhtml<CR> nnoremap <leader>2 :set filetype=css<CR> nnoremap <leader>3 :set filetype=javascript<CR> nnoremap <leader>4 :set filetype=php<CR> nmap <leader>fd :se fileformat=dos<CR> nmap <leader>fu :se fileformat=unix<CR> 使用Ctrl+[l|n|p|cc] 來 list|next|previous|jump to count the result map <C-x>l <ESC>:cl<CR> map <C-x>n <ESC>:cn<CR> map <C-x>p <ESC>:cp<CR> map <C-x>c <ESC>:cc<CR> 選中狀態下 Ctrl c 複製 vmap <C-c> y
autocmd
:set autocmd!
Python 文件的通常設置,好比不要 tab 等 autocmd FileType python set tabstop=4 shiftwidth=4 expandtab autocmd FileType python map <F12> :!python %<CR> 設置字典 ~/.vim/dict/文件的路徑 autocmd filetype javascript set dictionary=$VIMFILES/dict/javascript.dict autocmd filetype css set dictionary=$VIMFILES/dict/css.dict autocmd filetype php set dictionary=$VIMFILES/dict/php.dict
vim的插件
http://www.ibm.com/developerworks/cn/linux/l-tip-vim2/index.html gzip(壓縮文件支持) netrw(網絡文件支持) engspchk(英文拼寫檢查) calendar(日曆顯示)\cal project(文件的「項目」管理):Project taglist(源代碼結構瀏覽):Tlist :let Tlist_Inc_Winwidth=0 cvsmenu(CVS集成) doxygen(文檔註釋語法加亮) matrix(一個好玩的腳本):Matrix syntax/2html.vim 讓 Tohtml 產生有 CSS 語法的 html let html_use_css=1 ZenCoding.vim 很酷的插件,HTML代碼生成 插件最新版:http://github.com/mattn/zencoding-vim 經常使用命令可看:http://nootn.com/blog/Tool/23/ checksyntax.vim JavaScript常見語法錯誤檢查 默認快捷方式爲 F5 let g:checksyntax_auto = 0 不自動檢查 NeoComplCache.vim 自動補全插件 let g:AutoComplPop_NotEnableAtStartup = 1 let g:NeoComplCache_EnableAtStartup = 1 let g:NeoComplCache_SmartCase = 1 let g:NeoComplCache_TagsAutoUpdate = 1 let g:NeoComplCache_EnableInfo = 1 let g:NeoComplCache_EnableCamelCaseCompletion = 1 let g:NeoComplCache_MinSyntaxLength = 3 let g:NeoComplCache_EnableSkipCompletion = 1 let g:NeoComplCache_SkipInputTime = '0.5' let g:NeoComplCache_SnippetsDir = $VIMFILES.'/snippets' <TAB> completion. inoremap <expr><TAB> pumvisible() ? \<C-n> : \<TAB> snippets expand key imap <silent> <C-e> <Plug>(neocomplcache_snippets_expand) smap <silent> <C-e> <Plug>(neocomplcache_snippets_expand) bufexplorer.vim Buffers切換 \be 全屏方式查看所有打開的文件列表 \bv 左右方式查看 \bs 上下方式查看 taglist.vim 查看函數列表,須要ctags程序 F4 打開隱藏taglist窗口 if MySys() == windows 設定windows系統中ctags程序的位置 let Tlist_Ctags_Cmd = ' '.$VIMRUNTIME.'/ctags.exe ' elseif MySys() == linux 設定windows系統中ctags程序的位置 let Tlist_Ctags_Cmd = '/usr/bin/ctags' endif nnoremap <silent><F4> :TlistToggle<CR> let Tlist_Show_One_File = 1 不一樣時顯示多個文件的tag,只顯示當前文件的 let Tlist_Exit_OnlyWindow = 1 若是taglist窗口是最後一個窗口,則退出vim let Tlist_Use_Right_Window = 1 在右側窗口中顯示taglist窗口 let Tlist_File_Fold_Auto_Close=1 自動摺疊當前非編輯文件的方法列表 let Tlist_Auto_Open = 0 let Tlist_Auto_Update = 1 let Tlist_Hightlight_Tag_On_BufEnter = 1 let Tlist_Enable_Fold_Column = 0 let Tlist_Process_File_Always = 1 let Tlist_Display_Prototype = 0 let Tlist_Compact_Format = 1 mark.vim 給各類tags標記不一樣的顏色,便於觀看調式的插件。 \m mark or unmark the word under (or before) the cursor \r manually input a regular expression. 用於搜索. \n clear this mark (i.e. the mark under the cursor), or clear all highlighted marks . \* 當前MarkWord的下一個 \# 當前MarkWord的上一個 \/ 全部MarkWords的下一個 \? 全部MarkWords的上一個 NERD_tree.vim 以樹狀方式瀏覽系統中的文件和目錄 :ERDtree 打開NERD_tree :NERDtreeClose 關閉NERD_tree o 打開關閉文件或者目錄 t 在標籤頁中打開 T 在後臺標籤頁中打開 ! 執行此文件 p 到上層目錄 P 到根目錄 K 到第一個節點 J 到最後一個節點 u 打開上層目錄 m 顯示文件系統菜單(添加、刪除、移動操做) r 遞歸刷新當前目錄 R 遞歸刷新當前根目錄 F3 NERDTree 切換 map <F3> :NERDTreeToggle<CR> imap <F3> <ESC>:NERDTreeToggle<CR> NERD_commenter.vim 註釋代碼用的, [count],cc 光標如下count行逐行添加註釋(7,cc) [count],cu 光標如下count行逐行取消註釋(7,cu) [count],cm 光標如下count行嘗試添加塊註釋(7,cm) ,cA 在行尾插入 /* */,而且進入插入模式。 這個命令方便寫註釋。 注:count參數可選,無則默認爲選中行或當前行 let NERDSpaceDelims=1 讓註釋符與語句之間留一個空格 let NERDCompactSexyComs=1 多行註釋時樣子更好看 DoxygenToolkit.vim 由註釋生成文檔,而且可以快速生成函數標準註釋 let g:DoxygenToolkit_authorName= Asins - asinsimple AT gmail DOT com let g:DoxygenToolkit_briefTag_funcName= yes map <leader>da :DoxAuthor<CR> map <leader>df :Dox<CR> map <leader>db :DoxBlock<CR> map <leader>dc a /* */<LEFT><LEFT><LEFT> matchit.vim 對%命令進行擴展使得能在嵌套標籤和語句之間跳轉 % 正向匹配 g% 反向匹配 [% 定位塊首 ]% 定位塊尾 plugin - vcscommand.vim 對%命令進行擴展使得能在嵌套標籤和語句之間跳轉 SVN/git管理工具 a.vim
搭建vim開發環境
http://blog.csdn.net/tao_627/article/details/9320363
項目管理
http://blog.csdn.net/ithomer/article/details/7090318 http://blog.csdn.net/paul08colin/article/details/9232409
參考
http://www.vim.org/ http://wiki.dzsc.com/info/7313.html http://www.cnblogs.com/zourrou/archive/2011/04/16/2018493.html http://blog.csdn.net/wuyeyixi/article/details/7466327 http://blog.csdn.net/tao_627/article/details/9320363 http://blog.csdn.net/ithomer/article/details/7090318 http://blog.csdn.net/paul08colin/article/details/9232409 http://blog.163.com/zhang_sheng_cun/blog/static/46288667200792604435190/ http://linux.chinaunix.net/techdoc/desktop/2009/07/06/1122020.shtml http://be-evil.org/vim-how-to-comment-multi-line-code.html http://www.ibm.com/developerworks/cn/linux/l-tip-vim2/index.html http://vimcdoc.sourceforge.net/ 下載vim的pdf徹底翻譯版,裏面很詳細的介紹了vim http://www.vi-improved.org/vimrc.php 帶有英文註釋的.vimrc配置文件
unix/linux的哲學之一是使用獨立的小工具完成複雜的工做。