如何删除vim下每行的部分内容?

时间:2014-10-01 12:47:39

标签: vim vi

我是vim&替换命令的新手。

我有一个文件diff.txt(来自使用命令diff),其中包含以下内容:

 Files ./a/src/external/bdb/Table.cc and /home/b/src/external/bdb/Table.cc differ
 Files ./a/src/external/bdb/Table.h and /home/b/src/external/bdb/Table.h differ
 Files ./a/src/modules/catalog/distributed/CatalogBox.h and /home/b/src/modules/catalog/distributed/CatalogBox.h differ

在这个文件中,每一行都包含一些我不想要的内容,我希望这个文件的最终版本如下:

 Files ./a/src/external/bdb/Table.cc 
 Files ./a/src/external/bdb/Table.h 
 Files ./a/src/modules/catalog/distributed/CatalogBox.h 

当然我可以使用以下gawk和mv命令完成此任务:

 gawk -F" " '{print $1 $2}' ./diff.txt > diff.txt.bak
 mv diff.txt.bak diff.txt

但我认为vim必须有一个简单的解决方案。

2 个答案:

答案 0 :(得分:3)

尝试此命令:

:%s/ and .*//

答案 1 :(得分:3)

:s命令外,你也可以试试这个:

:%norm! 2WD