我们已经学了一种不会让我们发狂的键盘映射方法,但是你可以注意到另外一个问题。
每次我们像:nnoremap
有些按键你平常使用并不需要用到。你几乎永远不会用到-、 H、L、
这些按键都可以随意映射,但是只有这6个按键貌似不够吧。难道为vim称道的可定制传说 有问题?
映射按键序列
不像Emacs,Vim可以映射多个按键。运行下面命令:
:nnoremap -d dd
:nnoremap -c ddO
norma模式下快读敲入 -d或-c查看效果。第一个映射作用是删除一行,第二个是 删除一行并进入insert模式。
这就意味着你可以用一个你不常用的按键(如-)作为“前缀”,后接其它字符作为一个整体 进行映射。你需要多敲一个按键以执行这些映射,多一个按键而已,很容易就记住了。
如果你也认为这是个好方法,我可以告诉你,Vim已经支持这种机制。
Leader
我们称这个“前缀”为“leader”。你可以按你的喜好设置你的leader键。运行命令:
:let mapleader = "-"
你可以替换-为你喜欢的按键。尽管会屏蔽一个有用的功能,但我个人使用的是,,因为这个键比较 比较容易按到。
当你创建新的映射时,你可以使用
:nnoremap
现在试试按下你的leader按键和d。Vim会删除当前行。
然而为何每次都要繁琐的设置
首先,你某天可能会想要更换你的“leader”。在一个地方定义它使得更方便更换它。
第二,其他人看你的~/.vimrc文件时,一旦看到
最后,许多Vim插件都会创建以
Local Leader
Vim有另外一个“leader”成为“local leader“。这个leader用于那些只对某类文件 (如Python文件、HTML文件)而设置的映射。
本书将在后续章节讲述如何为特定类型的文件创建映射,但你可以现在创建一个“localleader”:
:let maplocalleader = "\\"
注意我们使用\\而不是\,因为\在Vimscript中是转义字符。我们将在后续章节 讲到这个。
现在你就可以在映射中使用
如果你不喜欢反斜线,请随意更改它。
练习
阅读:help mapleader。
阅读:help maplocalleader。
在你的~/.vimrc文件中设置mapleader和maplocalleader。
增加