Vim全局命令使每行包含一个符号,以一个单词开头

时间:2012-02-13 02:07:52

标签: vim global

考虑以下文本文件:

something
something
something = someother thing
other thing = third thing
another thing = forth thing

我想让它看起来像这样:

something
something
keyword something = someother thing
keyword other thing = third thing
keyword another thing = forth thing

这样,我在每一行添加关键字,其中包含一个等号。 我可以用全局命令执行此操作,或者您如何建议我应该执行此操作?

2 个答案:

答案 0 :(得分:6)

:g/=/s/^/keyword /

:g/=/normal ikeyword

请注意“关键字”

之后的空格

对于这类问题,使用类似的解决方案也很常见:

:%!sed '/=/s/^/keyword /'

答案 1 :(得分:0)

我不太清楚你想要完成什么。你的标题暗示了一个共同的模式,但我在你的例子中没有看到一个。所以我会告诉你们两个。

以共同模式在事物中进行变革

您可以使用以下内容进行搜索和替换:

:s/<regex you are searching for>/<string to replace with>/g

s/pattern/replacement/会搜索&amp;替换,额外的g将传播变化

多行编辑

Vim还允许您一次编辑多行。假设您要编辑以下三行:

something = someother thing
other thing = third thing
another thing = fourth thing
  1. 将光标放在第s行的something处 在插入模式之外按<ctrl>-v进入可视模式。
  2. 向下滚动到底线的a。应突出显示所有3行的所有三个起始字符。
  3. A追加或I直接进入插入模式并开始输入。当您点击逃脱时,您的更改应该反映出来您还可以执行其他命令,例如yd等。