来到了常见的 Leader.
初学时, 我简单地把 Leader 理解成一个 namespace, 好比 tmux 的 Ctrl+b
. 现在看, 也没有偏差太多.
你可以把 Leader 看成是 Vim 内置的 prefix key.
Leader 的值存在 mapleader 变量中, 如果 mapleader 未初始化或者值为空, 则默认为 反斜杠 \
.
这里注意: mapleader 是一个 variable, 不是一个 option, 使用 :set mapleader?
会报错的.
相应的, 如果想要修改 Leader 键, 可以通过给 mapleader 赋值来实现.
编辑.vimrc
, 添加如下代码:
let mapleader="-" |
保存退出, source 后, 打开文件, 在 Normal 模式下, 按 -d
, 等同于执行 dd
. 即删除当前行. 此时 <Leader>
已变成了-
了, 如果按\d
, 会发现无效.
mapleader 还有一个小兄弟, 叫 maplocalleader, 在 Vim中用特殊的字符串 <LocalLeader>
来表示.
同样, 可以通过赋值 maplocalleader 来设置 <LocalLeader>
:
:let maplocalleader = "\\" |
那 <LocalLeader>
是用来干嘛的呢?
作者在书中提到 <LocalLeader>
用来作为特定文件类型中的前置键.
This is meant to be a prefix for mappings that only take effect for certain types of files, like Python files or HTML files.
这个同官方文档中给出的, 稍稍有些区别.
Vim 官方文档提到的是 <LocalLeader>
用于只针对当前 buffer 有效的mappings.
<LocalLeader>
is to be used for mappings which are local to a buffer. Example:
:map<LocalLeader>
A oanother line
但是文档中也提到了:
In a global plugin
<Leader>
should be used and in a filetype plugin<LocalLeader>
.
全局插件使用 <Leader>
, 特定文件类型的插件, 使用 <LocalLeader>
.[有关Plugin, 后面会单独再介绍]
当然, 平日里我基本用不到<LocalLeader>
, 这里就不折腾了.
可以查看官方文档了解更多.
:h mapleader |