1. vim基本用法:模式,光標(biāo)移動(dòng),查找替換,復(fù)制粘貼刪除
1.1 幫助
:help
:help command
1.2 模式切換
下面的操作方式和快捷鍵基本上都是在命令模式下的,編輯模式按鍵一般只能輸入文字。
1.3 輸入方式
1.4 撤銷,重做
1.5 保存,退出
1.8 在函數(shù)中定位光標(biāo)
[[
]]
{
}
1.9 查找當(dāng)前文件
n,N
* , #
g*, g#
?key
1.10 批量替換:%s/要被取代的字串/新的字串/g
1.11 復(fù)制粘貼刪除
2. 配置:顯示和編輯樣式,配置文件
2.1 顯示和編輯樣式
2.2 配置文件
3. vim用法: 多行注釋,多文件,多窗格編輯,保存會(huì)話
分割窗口
切換窗口
移動(dòng)窗口
改變窗口大小
顯示命令歷史窗口
讓當(dāng)前文件占據(jù)整個(gè)窗口
關(guān)閉其中一個(gè)(當(dāng)前)窗口
讓用緩沖區(qū)的文件來到分割窗口
3.4 保存所在目錄的環(huán)境和狀態(tài),會(huì)話
如果在vim中已經(jīng)打開了好多窗口,想要保持這個(gè)環(huán)境,等下次編輯瀏覽時(shí)再載入。
:help mksession
:mksession!
:mksession! work.vim
$ vim -S work.vim
也可在vim中手動(dòng)載入會(huì)話:
:source Session.vim
:source work.vim
配置自動(dòng)保存和載入會(huì)話
這個(gè)配置好后,第一次在要自動(dòng)保持會(huì)話的目錄下進(jìn)入vim,用命令:mksession! project.vim。以后使用直接在當(dāng)前目錄$vim即可。
如果想打開和關(guān)閉vim時(shí)自動(dòng)保存和載入會(huì)話,可以在配置文件~/.vimrc中加入:
" auto save and load session
let g:
let g:OrigPWD=getcwd()
if filereadable(g:AutoSessionFile)
endif
function! LeaveHandler()
endfunction
function! EnterHandler()
endfunction
參考vim中session自動(dòng)保存及加載
4. 瀏覽代碼:ctags,Taglist,NERD_tree,cscope
4.1 熱門vim腳本
http://vim.sourceforge.net 下 scripts->browse all
4.2ctags跳轉(zhuǎn)到定義處
ctags是一個(gè)用來產(chǎn)生代碼索引文件的插件,支持很多語言。
可以用Ctrl-]命令跳轉(zhuǎn)到函數(shù)的定義處,也可以用命令來搜索函數(shù)的定義,非常好用。
安裝ctags
創(chuàng)建tags文件
使用ctags
4.3Taglist函數(shù)和變量列表
Taglist是vim的源代碼瀏覽插件,可以以窗口方式查看函數(shù)列表,變量列表等。
Taglist的實(shí)現(xiàn)依賴ctags。
安裝Taglist
使用 :Tlist
Tlist快捷鍵
配置:Tlist快捷鍵
Tlist幫助
4.4 NERD_tree 目錄樹列表
安裝NERD_tree
使用NERDTree
NERDTree快捷鍵
幫助
忽略特定文件類型
配置:NERDTree快捷鍵
4.5 bufexplorer 緩沖區(qū)文件列表
安裝bufexplorer類似NERD_tree。
使用BufExplorer
配置:BufExplorer快捷鍵
4.6cscope在整個(gè)目錄查找函數(shù)被調(diào)用位置
cscope可以在整個(gè)目錄查找函數(shù)定義,查找函數(shù)被調(diào)用位置等,非常好用。
安裝cscope
生成cscope數(shù)據(jù)庫
載入cscope數(shù)據(jù)庫
使用cscope查找整個(gè)目錄
多個(gè)匹配間跳轉(zhuǎn)
修改配置文件
5. 編譯并修改代碼錯(cuò)誤
quickfix模式內(nèi)置在vim中,編譯后記錄了出錯(cuò)的位置信息,用來定位錯(cuò)誤位置。
編譯
快速定位代碼錯(cuò)誤
6. 調(diào)用gdb來debug:vimgdb
安裝vimgdb
配置按鍵映射
使用vimgdb
變量監(jiān)視窗口
在gdb輸出窗格顯示,查看
參考:vi/vim使用進(jìn)階: 在VIM中使用GDB調(diào)試 – 使用vimgdb
7. 其它
7.1 中文亂碼問題
先安裝運(yùn)行zhcon
8. 我的vim
安裝了插件ctags,cscope,腳本Taglist,NERD_tree,bufexplorer,
按這里配置好之后,F(xiàn)2彈出函數(shù)列表,F(xiàn)3彈出目錄列表,Ctrle-],Ctrl--跳轉(zhuǎn)到函數(shù)定義,Ctrl-\跳轉(zhuǎn)到函數(shù)引用,很方便。
我的配置文件~/.vimrc
---------------------------------------------------------------------