Vimscript 基本映射

2018-02-24 16:02 更新

如果說Vimscript有一個(gè)特性使得你能夠按照你的意愿定制Vim,那就非鍵盤映射莫屬。 你可以通過鍵盤映射告訴Vim:

當(dāng)我按下這個(gè)鍵時(shí),我需要你放棄默認(rèn)操作,按我的想法做。

我們先從normal模式的鍵盤映射開始。我們將在下一章節(jié)討論insert模式和其他模式下的 鍵盤映射。

隨意在文本中敲寫幾行文字,然后運(yùn)行命令:

:map - x

將光標(biāo)置于文本中的某處,按下-。注意Vim刪除了當(dāng)前光標(biāo)下的字符,就好像你按了x一樣。

我們本來就有個(gè)按鍵用于 "刪除當(dāng)前光標(biāo)下的字符" ,所以我們將-重新映射到稍微有用的 功能。執(zhí)行命令:

:map - dd

現(xiàn)在移動(dòng)光標(biāo)到任意一行,再按下-,這次Vim刪除了整行的文本,因?yàn)?code>dd的功能就是刪除整行。

特殊字符

你可以使用<keyname>告訴Vim一個(gè)特殊的按鍵。嘗試如下命令:

:map <space> viw

移動(dòng)光標(biāo)到一個(gè)單詞上,按下空格鍵。Vim將高亮選中整個(gè)單詞。

你也可以映射修飾鍵入Ctrl和Alt。執(zhí)行:

:map <c-d> dd

現(xiàn)在在鍵盤上按下Ctrl+d將執(zhí)行dd命令。

注釋

還記得我們?cè)诘谝徽掠懻摰淖⑨屆矗挎I盤映射就無(wú)法使用注釋。嘗試如下命令:

:map <space> viw " Select word

現(xiàn)在你再按下空格鍵,一些恐怖的事情就會(huì)發(fā)生。想一想為什么會(huì)這樣呢?

當(dāng)你按下空格鍵時(shí),Vim認(rèn)為你是想執(zhí)行命令viw<space>"<space>Select<space>word。 很明顯,這不是你的本意。

如果你仔細(xì)查看了這個(gè)映射的結(jié)果,可能你會(huì)發(fā)現(xiàn)一些奇怪的事。利用幾分鐘時(shí)間, 弄明白使用這個(gè)映射時(shí)到底發(fā)生了什么,以及?為什么?會(huì)是那樣的結(jié)果。

暫時(shí)搞不明白也不要擔(dān)心,我們很快就會(huì)再次談?wù)撨@個(gè)問題。

練習(xí)

映射按鍵-為 "刪除當(dāng)前行,然后將其粘貼到下一行" 。然后你就可以一次按鍵就將一行 文本移動(dòng)到下一行。

將那個(gè)映射命令添加到你的~/.vimrc文件中,以后每次啟動(dòng)Vim你都可以使用那個(gè)映射了。

試試如何映射按鍵_,使其將當(dāng)前行上移一行。

將這個(gè)映射也加到你的的~/.vimrc文件中。

想想如果你想取消一個(gè)映射或重置一個(gè)按鍵為默認(rèn)功能時(shí)該怎么操作。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)