1

我想在 vim 中定义我自己的键绑定(覆盖默认键):

1)如何映射运算符?例如,我想将删除运算符映射到“l”键,因此 ll 将删除整行并 lw 当前单词。

2)如何取消映射操作员?我想从 d 键中取消映射删除运算符,所以我可以将此键 (d) 用于另一件事,我试图简单地将“d”键重新映射到另一个操作(例如 nmap dk),但这会导致一个延迟第二次按下“d”(因为vim正在等待动作)。

这样做的一个主要原因是我的键盘有一个数字键盘,我不想每次输入数字时都将右手从 hjkl 切换到数字键盘(这种情况经常发生),我更喜欢改变hjkl 到 asdf,将我的左手固定在动作和特殊键(crtl、shift、esc)上,并将我的右手用于其他命令。这样我的工作效率就大大提高了。

4

1 回答 1

1

您无法取消映射 d 以将其释放以用于其他用途。你甚至不需要:做

nnoremap l d

将映射l做同样的事情d(注意:这不会允许ll)。

nnoremap d {some-other-thing}

将映射d做一些其他的事情,你不需要在这里释放一些东西。更多,完成以上所有操作后

nnoremap l c

将使 make具有与没有任何取消映射l相同的含义:命令覆盖现有映射,除非它们被赋予参数。c*map<unique>


为了让ll您有一些选择:

nnoremap ll dd

或者

onoremap l d

. 请注意,不幸的是,我不知道与重复字符具有相同含义但不依赖于操作员的动作。因此ll将在最后一种情况下工作,但cl同样会失败cd


但是,如果您经常在别人的机器上工作,那么它是可能的这一事实并不是一个好主意。如果你知道你不知道,这也不是一个坏主意。如果每个人都关心使用别人的机器,那么您将使用记事本,没有++.

于 2012-12-24T16:38:42.287 回答