a"
运动;例如重构一段代码以用变量名替换硬编码参数时使用ca"
。这种方法的问题在于,如果没有尾随空白,则a"
包含前导空白:包括任何尾随空白,除非没有尾随空白,否则包括前导空白。 br />
因此,当我像这样编辑函数调用时:
是因为
replacedArg
删除了它。 /> 注意事项:
ca"
会执行我想要的操作,只要字符串不包含任何转义的引号,但要求我将光标放在字符串的开头。我想在字符串中的任何地方都可以使用某些东西,而ca"
的输入方式很尴尬。至少要进行四次额外的击键(cf"
)并破坏我的注意力。因此,替换命令的长度并不重要,只要它仅删除给定字符之间的文本,然后进入插入模式即可。#1 楼
从https://superuser.com/questions/537453/vim-copy-quoted-string-without-whitespace:使用2i"
而不是a"
。另请参阅:help i'
。评论
奇迹般有效!我选择接受这个答案,是因为它可以在不依赖插件的情况下与普通vim一起使用。
–l4mpi
17年4月4日在13:54
#2 楼
在Wellle的target.vim插件中有。要引用相关部分(在“ A Quote”部分中):a' a" a
选择报价。
这会覆盖Vim的默认文本对象以支持查找。
与Vim的引用文本对象不同,它不包含周围的空格。 />
评论
看起来此插件会覆盖“”,并使用“ A”表示原始行为?
–马丁·图尔诺伊(Martin Tournoij)
2015年7月2日,12:53
...同时,我相信,也允许寻求“向左”
– VanLaser
15年7月2日在12:56
#3 楼
或者,您可以使用参数/参数文本对象。现在Vim没有本机参数文本对象,但是有一些插件可以执行:argumentative.vim(我写了这个)
.vim
vim-angry
targets.vim
argtextobj.vim
parameter_objects.vim
可能更多
我个人使用我自己的插件,arativeative.vim,但是我听说过sideways.vim和targets.vim都很好。
评论
可以使用F“代替使用?”