linux编辑文件命令vim_linux下vim多文件查找与替换教程

时间:2019-10-10  来源:Perl  阅读:

linux平台上,有很多优秀的shell命令组合来做多文件查找/替换,比如这些命令:find,sed,grep,awk,perl。但其他平台比如windows上就没那么方便了,这时候vim内置的多文件查找命令就有用武之地了,虽然比起外部命令来稍微慢了一点点儿。

vim 多文件查找

这个vim内置命令就是vimgrep,有两种基本的使用方式:

:vim[grep][!] /{pattern}/[g][j] {file} ...
:vim[grep][!] {pattern} {file} ...

file部分支持通配符,*代表当前目录,**代表当前目录及其子目录(递归),比如*/*.c代表当前目录下的c源程序文件,**/*.c代表当前目录及其递归子目录下的所有源程序文件。file部分可以指定多次。

以下命令查看匹配结果:

:cn[ext] 下一个结果
:cp[revious] 上一个结果
:cw[indow] quickfix窗口,结果文件列表

更详细的用法参见:help vimgrep 和下面的refs。

vim 多文件替换


实际上只要如下两个命令即可(假设要将当前目录下所有扩展名为.txt/.cpp的文件中的hate替换成love):

:args *.txt *.cpp :argdo %s/hate/love/gc | update

:args *.txt *.cpp
:argdo %s/hate/love/gc | update

就可以完成啦。解释如下,

:args *.txt *.cpp

:args *.txt *.cpp

这样写会扫描当前目录下的.txt 和 .cpp文件,并加入到参数列表。但是这样写只会稻苗当前目录,如果想要递归扫描所有下级目录的话,用

:args **/*.txt

:args **/*.txt

如果只想扫描下一级目录(即不扫描当前目录)的话,用

:args */*.txt

:args */*.txt



:argdo %s/hate/love/gc | update

:argdo %s/hate/love/gc | update

是将参数列表中的所有文件的hate提换成love,并写入硬盘(如果没有|update,就不会写入,但相应的替换也会被中断)。

最后强调一点,使用替换命令的时候,一定记得备份,因为替换是直接写入硬盘滴哦……

好啦,希望这篇文章对大家有用~

linux编辑文件命令vim_linux下vim多文件查找与替换教程

http://m.bbyears.com/jiaocheng/72419.html

推荐访问:
相关阅读 猜你喜欢
本类排行 本类最新