我a"
经常在vim中使用该动作。例如,ca"
在重构代码时使用,用变量名替换硬编码的参数。这种方法的问题是,a"
如果没有尾随空白,则包括前导空白:
包括任何结尾的空格,除非没有空格,否则包括前导空格。
因此,当我编辑这样的函数调用时:
aFunction(arg1, "toBeReplaced", arg3) #original
aFunction(arg1, replacedArg, arg3) #refactored
我必须先手动重新插入该空间,然后再将replacedArg
其ca"
删除。
是否有任何类似的动作不包含此空白,或者还有其他我可以使用的替代方式,ca"
使我不必键入多余的空格?
笔记:
cf"
只要字符串不包含任何转义引号,它就可以执行我想要的操作,但是需要我将光标放在字符串的开头。我想要可以在字符串中的任何地方使用的东西,而且?"<Enter>cf"
键入起来很尴尬。<Space>
与其说是一次击键,不如说是我经常起初常常忘记包含空格,这使我花费了至少四次额外的击键(bi<Space><Esc>
)并破坏了我的注意力。因此,替换命令的长度并不重要,只要它仅删除给定字符之间的文本然后进入插入模式即可。
?"<Enter>
您可以使用代替使用搜索行后的报价F"
。F
与相同,f
但向左搜索。下面的答案对于您的问题看起来更好,但F
它本身就是一个有用的命令。