Vim复制行中的第一个单词并在该单词后打印它,以4个空格分隔

标签 vim

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

football
run
phone
watch

然后会变成:

football    football
run    run
phone    phone
watch    watch

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

最佳答案

您可以使用substitute命令和行范围来完成此操作:

:186,1413s/^\w\+/&    &/

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

第一个单词之后的任何文本都将附加到行尾。

关于Vim复制行中的第一个单词并在该单词后打印它,以4个空格分隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40712087/

相关文章:

vim - 搜索时执行文件的 "skip bottom, jump to the top"

c++ - 你如何在 vi 中使用标记?

bash - 如何防止 vim bash 命令使用全屏?

editor - 强制他在同一窗口中打开所有文件(使用 vim 和 cscope)

vim - vim中,有没有插件可以用%来匹配对应的双引号(")?

vim - vi中如何从当前位置复制到行尾

vim - 如何在 Vim 中重新缩进视觉选择的列

vim - 在 vim 中以命令模式或搜索模式 (/) 粘贴

vim - 在 Vim 中,是否可以在指定打开的拆分窗口中打开文件?

vim - 在 vimscript 中传递一个变量以休眠