是否有类似“不包含前导空白”的动作?


10

a"经常在vim中使用该动作。例如,ca"在重构代码时使用,用变量名替换硬编码的参数。这种方法的问题是,a" 如果没有尾随空白,则包括前导空白

包括任何结尾的空格,除非没有空格,否则包括前导空格。

因此,当我编辑这样的函数调用时:

aFunction(arg1, "toBeReplaced", arg3) #original
aFunction(arg1, replacedArg, arg3)    #refactored

我必须先手动重新插入该空间,然后再将replacedArgca"删除。

是否有任何类似的动作不包含此空白,或者还有其他我可以使用的替代方式,ca"使我不必键入多余的空格?

笔记:

  • cf"只要字符串不包含任何转义引号,它就可以执行我想要的操作,但是需要我将光标放在字符串的开头。我想要可以在字符串中的任何地方使用的东西,而且?"<Enter>cf"键入起来很尴尬。
  • <Space>与其说是一次击键,不如说是我经常起初常常忘记包含空格,这使我花费了至少四次额外的击键(bi<Space><Esc>)并破坏了我的注意力。因此,替换命令的长度并不重要,只要它仅删除给定字符之间的文本然后进入插入模式即可。

1
?"<Enter>您可以使用代替使用搜索行后的报价F"F与相同,f但向左搜索。下面的答案对于您的问题看起来更好,但F它本身就是一个有用的命令。
Lithis

Answers:



10

还有就是,在Wellle的targets.vim插件。引用相关部分(在“ A Quote ”部分中):

a' a" a

  • 选择报价。

  • 这将覆盖Vim的默认文本对象以支持查找。

  • 与Vim的引号文本对象不同,它不包含周围的空白


看起来这个插件会覆盖a",并A"用于原始行为?
马丁·图尔诺伊

...同时,我相信,也允许寻求“向左”
VanLaser

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.