Vim将第一个单词复制到一行并在该单词分隔4个空格后打印出来

时间:2016-11-21 02:54:38

标签: vim

我正在使用Vim并希望复制某些行中的第一个单词,然后将其粘贴在由4个空格分隔的单词之后。以下是一个例子。

football
run
phone
watch

然后会变成:

football    football
run    run
phone    phone
watch    watch

我只想应用于第186到1413行。我可以使用Vim视觉模式进行此操作,但必须有更快的方法。

2 个答案:

答案 0 :(得分:1)

您可以使用substitute命令和行范围:

执行此操作
:186,1413s/^\w\+/&    &/

186,1413是要操作的行(开始,结束)范围。 ssubstitute的缩写(参见:h substitute),它执行正则表达式搜索和替换。 ^\w\+匹配任何单词字符(字母数字和下划线,没有空格)。 & &将匹配的单词替换为自身,四个空格,并再次替换。

第一个单词后的任何文字都会附加到该行的末尾。

答案 1 :(得分:1)

您可以使用:normal命令:

:186,1413norm! yw4A ^[p

^[ctrl-v然后按ESC