Vim: ci( like ci“?

Vim: ci( like ci"?

提问人:masterxilo 提问时间:1/25/2013 最后编辑:Michael Berkowskimasterxilo 更新时间:10/5/2020 访问量:3725

问:

在 vim 中,我如何更改当前行括号中的任何内容,例如更改引号中的所有内容?ci(ci"

我试过了

:nnoremap ci( f(lct)

但我的映射被忽略了。我不能像这样扩展内置命令吗?

还有什么方法可以组合动作吗?我可以做一些事情,比如在右括号之前更改两个字符的所有内容吗?c{f)hh}

提前致谢。

vim

评论

0赞 Nikita Kouevda 1/25/2013
该映射对我有用。但是,在括号内区域内不再有效;你是这个意思吗?ci(
0赞 masterxilo 1/25/2013
也许是一些插件为我破坏了它。我该如何为此制作命令模式命令?我知道我可以做“命令什么”来制作现有命令的快捷方式,例如“command!CDC :cd %:p:h ',但是如何使命令模式命令在正常模式下模拟击键?
0赞 masterxilo 1/25/2013
即使禁用所有插件,我真的无法让此映射正常工作。我能做些什么?
3赞 Jim Stewart 1/25/2013
这并不完全是您问题的答案,但请查看 vim-surround。很棒的插件,适合这种事情。
0赞 masterxilo 1/25/2013
是的,已经得到了那个。谢谢。

答:

6赞 romainl 1/25/2013 #1

和 的行为是不同的,因为 vim 不认为引号(和单引号)一定是成对出现的,而 do。这一开始有点奇怪。ci(ci"({[<

这个“问题”有许多“修复”。这是第一个想到的。