Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
vim编辑-同时在各行的不同位置进行编辑_Vim - Fatal编程技术网

vim编辑-同时在各行的不同位置进行编辑

vim编辑-同时在各行的不同位置进行编辑,vim,Vim,我想知道是否有一种快速的方法来改变这一点: foo: '' foobarfoo: '' foof: '' fooba: '' foobarbar: '' foooobar: '' 到 很明显,我想把单词按行粘贴到括号中。 有什么想法吗?这一行适用于您的示例: %s/\v([^:]*)(:\s*).*/\1\2'\1'/ 或者你喜欢用宏来玩: qq0ywf'pjq 然后99@q(99是您希望播放宏的次数)这一行适用于您的示例: %s/\v([^:]*)(:\s*).*/\1\2'\1'/

我想知道是否有一种快速的方法来改变这一点:

foo: ''
foobarfoo: ''
foof: ''
fooba: ''
foobarbar: ''
foooobar: ''

很明显,我想把单词按行粘贴到括号中。
有什么想法吗?

这一行适用于您的示例:

%s/\v([^:]*)(:\s*).*/\1\2'\1'/
或者你喜欢用宏来玩:

qq0ywf'pjq

然后
99@q
(99是您希望播放宏的次数)

这一行适用于您的示例:

%s/\v([^:]*)(:\s*).*/\1\2'\1'/
或者你喜欢用宏来玩:

qq0ywf'pjq

然后
99@q
(99是你想播放宏的次数)

肯特的正则表达式回答很好,但我经常用
g
Ex命令来做这类事情,只是因为我对正常模式操作的想法非常坚定,而且它们往往很短:

:g/^/norm yw$P

Kent的regex答案很好,但我经常使用
g
Ex命令来做这类事情,这仅仅是因为我在正常模式操作方面的想法非常坚定,而且它们通常都很短:

:g/^/norm yw$P

@ZagorulkinDmitry哪部分有问题?我觉得正则表达式很简单,是的。regexp很简单
*/\1\2'\1'/
-这很有趣。@ZagorulkinDmitry\1表示()和\2之间的内容表示第二种方式我认为宏方式比regexp方式更简单)@ZagorulkinDmitry哪部分有问题?我觉得正则表达式很简单,是的。regexp很简单
*/\1\2'\1'/
-这很有趣。@ZagorulkinDmitry\1表示()和\2之间的内容表示第二种方式(我认为宏方式比regexp方式更简单)