W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
我們已經(jīng)學(xué)了一種不會讓我們發(fā)狂的鍵盤映射方法,但是你可以注意到另外一個問題。
每次我們像:nnoremap <space> dd
這樣映射一個按鍵都會覆蓋掉<space>
的原有功能。 如果哪天我們想用<space>
了,怎么辦?
有些按鍵你平常使用并不需要用到。你幾乎永遠(yuǎn)不會用到-
、?H
、L
、<space>
、<cr>
?和<bs>
這些按鍵的功能(當(dāng)然,是在normal模式下)。依據(jù)你的工作方式,可能還有其他你 不會用到的按鍵。
這些按鍵都可以隨意映射,但是只有這6個按鍵貌似不夠吧。難道為Vim稱道的可定制傳說 有問題?
不像Emacs,Vim可以映射多個按鍵。運行下面命令:
:nnoremap -d dd
:nnoremap -c ddO
norma模式下快讀敲入?-d
或-c
查看效果。第一個映射作用是刪除一行,第二個是 刪除一行并進(jìn)入insert模式。
這就意味著你可以用一個你不常用的按鍵(如-
)作為“前綴”,后接其它字符作為一個整體 進(jìn)行映射。你需要多敲一個按鍵以執(zhí)行這些映射,多一個按鍵而已,很容易就記住了。
如果你也認(rèn)為這是個好方法,我可以告訴你,Vim已經(jīng)支持這種機制。
我們稱這個“前綴”為“l(fā)eader”。你可以按你的喜好設(shè)置你的leader鍵。運行命令:
:let mapleader = "-"
你可以替換-
為你喜歡的按鍵。盡管會屏蔽一個有用的功能,但我個人使用的是,
,因為這個鍵比較 比較容易按到。
當(dāng)你創(chuàng)建新的映射時,你可以使用<leader>
表示“我設(shè)置的leader按鍵”。運行命令:
:nnoremap <leader>d dd
現(xiàn)在試試按下你的leader按鍵和d
。Vim會刪除當(dāng)前行。
然而為何每次都要繁瑣的設(shè)置<leader>
?為什么創(chuàng)建映射時不直接敲入你的“前綴”按鍵? 原因主要有三個。
首先,你某天可能會想要更換你的“l(fā)eader”。在一個地方定義它使得更方便更換它。
第二,其他人看你的~/.vimrc
文件時,一旦看到<leader>
就能夠立即知道你的用意。如果他們 喜歡你的~/.vimrc
配置,即使他們使用不同的leader也可以簡單的復(fù)制你的映射配置。
最后,許多Vim插件都會創(chuàng)建以<leader>
開頭的映射。如果你已經(jīng)設(shè)置了leader,你會更容易上手 使用那些插件。
Vim有另外一個“l(fā)eader”成為“l(fā)ocal leader“。這個leader用于那些只對某類文件 (如Python文件、HTML文件)而設(shè)置的映射。
本書將在后續(xù)章節(jié)講述如何為特定類型的文件創(chuàng)建映射,但你可以現(xiàn)在創(chuàng)建一個“l(fā)ocalleader”:
:let maplocalleader = "\\"
注意我們使用\\
而不是\
,因為\
在Vimscript中是轉(zhuǎn)義字符。我們將在后續(xù)章節(jié) 講到這個。
現(xiàn)在你就可以在映射中使用<localleader>
了,使用方法和<leader>
一樣(當(dāng)然, 你要使用另外一個前綴)。
如果你不喜歡反斜線,請隨意更改它。
閱讀:help mapleader
。
閱讀:help maplocalleader
。
在你的~/.vimrc
文件中設(shè)置mapleader
和maplocalleader
。
增加<leader>
前綴到之前章節(jié)中你添加到~/.vimrc
文件中的映射命令, 防止那些映射覆蓋了默認(rèn)的按鍵作用。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: