zoukankan      html  css  js  c++  java
  • Linux使用vim进行多文件查找和替换的方法

      vim是Linux系统下常用的文本编辑,通过使用多种shell命令能够实现多文件的查找和替换,那么具体会使用到那些命令呢?下面小编就给大家介绍下Linux系统vim多文件查找和替换的方法。

    Linux使用vim进行多文件查找和替换的方法

      在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多文件查找和替换的方法介绍了,通过find,sed等命令能够实现多文件的相关处理,你也可使用vim内置的多文件查找命令。

  • 相关阅读:
    sublime text 4 vim 插件配置
    ssh-keygen 的使用
    distribution transaction solution
    bilibili 大数据 视频下载 you-get
    Deepin 20.2.1 安装 MS SQL 2019 容器版本
    【转】使用Linux下Docker部署MSSQL并加载主机目录下的数据库
    【转】You Can Now Use OneDrive in Linux Natively Thanks to Insync
    dotnet 诊断工具安装命令
    Linux 使用 xrandr 设置屏幕分辨率
    【转】CentOS 7.9 2009 ISO 官方原版镜像下载
  • 原文地址:https://www.cnblogs.com/thrillerz/p/5559862.html
Copyright © 2011-2022 走看看