vim 的一些高級(jí)用法
說(shuō)明:如果你準(zhǔn)備把本文中的命令放到配置文件(比如 .vimrc)中而不是在命令行執(zhí)行,那么請(qǐng)去掉開(kāi)頭的冒號(hào)。
★ 鍵映射
:maptype key command
其中,key 是要映射的鍵(序列),command 是所要映射的命令,maptype 包括如下幾種:
map 命令,可視和命令追加模式下的鍵映射
vmap 可視模式下的鍵映射
nmap 命令模式下的鍵映射
omap 命令追加模式下的鍵映射
map! 插入和命令行模式下的鍵映射
imap 插入模式下的鍵映射
cmap 命令行模式下的鍵映射
說(shuō)明:命令追加模式指的是命令輸入中的狀態(tài),也就是在輸入一個(gè)需要多個(gè)按鍵的命令時(shí),已經(jīng)開(kāi)始輸入但未完成的狀態(tài)。
舉個(gè)例子,
:map <F2> gg
的意思是在命令,可視和命令追加模式把 F2 鍵映射為命令 gg,也就是說(shuō),當(dāng)在這三種模式下時(shí),按下 F2 鍵,就相當(dāng)于按下了鍵序列 gg,其作用是定位到第一行。
要想避免 vim 把你映射的 command 中的內(nèi)容再次映射的話,應(yīng)該使用 noremap,其格式與 map 時(shí)相同。這時(shí)候,上面的各種 maptype 分別對(duì)應(yīng)如下:
noremap 命令,可視和命令追加模式下的鍵映射(無(wú)二次映射的)
vnoremap 可視模式下的鍵映射(無(wú)二次映射的)
nnoremap 命令模式下的鍵映射(無(wú)二次映射的)
onoremap 命令追加模式下的鍵映射(無(wú)二次映射的)
noremap! 插入和命令行模式下的鍵映射(無(wú)二次映射的)
inoremap 插入模式下的鍵映射(無(wú)二次映射的)
cnoremap 命令行模式下的鍵映射(無(wú)二次映射的)
取消一個(gè)鍵映射用 unmap,格式為 unmap key。其中 key 為之前定義了映射的鍵,unmap 可以換為如下幾種之一:
unmap 取消命令,可視和命令追加模式下的鍵映射
vunmap 取消可視模式下的鍵映射
nunmap 取消命令模式下的鍵映射
ounmap 取消命令追加模式下的鍵映射
unmap! 取消插入和命令行模式下的鍵映射
iunmap 取消插入模式下的鍵映射
cunmap 取消命令行模式下的鍵映射
★ 把當(dāng)前目錄設(shè)為正在編輯的文件所在的目錄
:cd %:p:h
說(shuō)明:只在類(lèi) Unix 操作系統(tǒng)下可用。
:lcd %:p:h
說(shuō)明:在所有操作系統(tǒng)下可用。
★ 打開(kāi)文件的時(shí)候自動(dòng)將當(dāng)前目錄設(shè)為該文件所在的目錄
在 .vimrc 中加入如下行:
:au BufEnter * :cd! %:p:h
★ 轉(zhuǎn)換文件格式
由于 Unix、Window 和 MacOS 的換行符的內(nèi)部表示不一樣,因此有時(shí)候需要轉(zhuǎn)換文件格式。
將文件格式轉(zhuǎn)換為 Unix 格式:
:set fileformat=unix
將文件格式轉(zhuǎn)換為 Windows 格式:
:set fileformat=dos
★ 讓 gvim 啟動(dòng)時(shí)窗口最大化(只在 Windows 下可用)
在 _vimrc 中加入如下行
autocmd GUIEnter * simalt ~x
posted on 2009-11-14 14:08 BlakeSu 閱讀(288) 評(píng)論(0) 編輯 收藏