将两个操作分配给VIM快捷方式

时间:2014-05-15 16:07:45

标签: vim keyboard-shortcuts

我在VIM中有以下键盘快捷键

nnoremap C vi"

这使我能够在""之间选择文字。点击C

现在我想要这个相同的快捷方式,但是为了#39;

nnoremap C vi'

这两条规则不起作用,因为最后一条规则取代之前的规则。

有没有办法让它们都有效?

1 个答案:

答案 0 :(得分:2)

是的,但您需要在映射中构建智能。这可以通过:help :map-expr

完成
nnoremap <expr> C 'vi' . (getline('.') =~ '"' ? '"'  : "'")

这个简单的例子将检查当前行是否包含双引号,然后选择那些,否则单引号。对于有用的映射,您可能需要确保双方的周围引号(使用search()),如果两种类型匹配,请选择&#34; close&#34;一。使用:function,您可以根据需要将其设置为复杂...