在vim中一次用引号将几个单词引起来

cod*_*kid 2 vim surround

我很好奇是否有办法使用vim一次用引号将多个单词引起来。我正在使用tpope环绕声并重复播放,但我想知道是否有类似的命令

3ysw"
Run Code Online (Sandbox Code Playgroud)

所以从

one two three 
Run Code Online (Sandbox Code Playgroud)

"one" "two" "three"
Run Code Online (Sandbox Code Playgroud)

L3v*_*han 5

您可以使用直观地选择范围v3e,然后在其上执行替换命令:(:s/\v(\w+)/"\1"/g该范围'<,'>应自动插入)。

不过,就我个人而言,我宁愿用括住一个单词ysw",然后再做w.w.(根据需要重复多次)。


或者,记录一个同时执行两个步骤(环绕并移动到下一个单词)的宏,然后将其调用n次:

qqysw"3wq
Run Code Online (Sandbox Code Playgroud)

将其输入您的q寄存器后,您可以调用2@q以对其余单词进行周围的环境处理。