制图&取消映射运算符

时间:2012-12-24 11:52:31

标签: vim

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

1)如何映射运营商?例如,我想将删除操作符映射到“l”键,所以ll将删除整行并且删除当前单词。

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

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

1 个答案:

答案 0 :(得分:1)

你无法取消映射d以释放其他东西。你甚至不需要:做

nnoremap l d

会将l映射为与d相同的内容(注意:这不允许ll)。

nnoremap d {some-other-thing}

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

nnoremap l c

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


要允许ll您有一些选择:

nnoremap ll dd

onoremap l d

。请注意,遗憾的是,我不知道与重复字符相同的动作,但不依赖于运算符。因此,ll将适用于最后一种情况,但cl将失败,就像cd一样。


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