我在VIM中有以下键盘快捷键
nnoremap C vi"
这使我能够在""之间选择文字。点击C
。
现在我想要这个相同的快捷方式,但是为了#39;
。nnoremap C vi'
这两条规则不起作用,因为最后一条规则取代之前的规则。
有没有办法让它们都有效?
答案 0 :(得分:2)
是的,但您需要在映射中构建智能。这可以通过:help :map-expr
:
nnoremap <expr> C 'vi' . (getline('.') =~ '"' ? '"' : "'")
这个简单的例子将检查当前行是否包含双引号,然后选择那些,否则单引号。对于有用的映射,您可能需要确保双方的周围引号(使用search()
),如果两种类型匹配,请选择&#34; close&#34;一。使用:function
,您可以根据需要将其设置为复杂...