內容查找 grep

回憶

  • 上次我們嘗試了一下各種在vi中執行外部程序
  • 可以排序
  • 可以改大小寫
  • 還可以用管道
  • 直接對於緩衝buffer文件進行操作
  • 還是很方便的
  • 其實還有一個外部命令很重要
  • 根據內容搜索grep
  • 這個怎麼和vim配合呢?🤔

在終端的grep

  • 寫一個oeasy.txt

grep 提取日誌後10行_vim

grep 提取日誌後10行_vim_02

  • 保存並退出
  • 複製粘貼出來兩份

grep 提取日誌後10行_搜索_03

grep 提取日誌後10行_新窗口_04

  • 內容查詢grep

grep 提取日誌後10行_grep 提取日誌後10行_05

grep 提取日誌後10行_vim_06

  • 可以在三個文件中找到oeasy
  • 去打開其中一個文件
  • vim oeasy.txt +1
  • 打開oeasy.txt 並且光標位於第1行

在vim中用grep

  • 打開vim
  • :grep oeasy *.*
  • 搜索到好多匹配之後
  • 放到一個prefix的列表中

grep 提取日誌後10行_新窗口_07

grep 提取日誌後10行_grep 提取日誌後10行_08

  • 還是查到了3個包含oeasy的文件
  • 查詢結果的展現形式來自於grepformat這個選項

grep 提取日誌後10行_新窗口_09

grep 提取日誌後10行_grep 提取日誌後10行_10

在結果列表中跳轉

  • 在匹配結果間跳轉
  • :cfirst
  • :cprev
  • :cnext
  • :clast
  • 匹配結果列表
  • :copen 新窗口打開列表
  • :cclose 關閉列表窗口
  • :cc N 跳到第N項

執行命令

  • :cdo {cmd}
  • 在每一個匹配的行執行命令{cmd}

grep 提取日誌後10行_新窗口_11

grep 提取日誌後10行_搜索_12

  • :cfdo {cmd}
  • 在每一個匹配的文件上執行命令{cmd}

grep 提取日誌後10行_vim_13

grep 提取日誌後10行_搜索_14

  • 回憶一下
  • :bufdo
  • :argdo
  • :windo

總結

  • 這次我們研究的是外部命令grep
  • 可以在vim中使用grep
  • 搜索的結果進入了列表
  • 可以打開、遍歷、跳轉、關閉這個列表
  • 也可以給列表中的匹配行或者每個文件執行命令
  • 到此為止學了很多的命令
  • 有內部的也有外部的
  • 有的在命令行模式裏面執行
  • 還有的映射到一組鍵盤在正常模式下執行
  • 但是都需要按下些什麼按鍵才能支持
  • 能否什麼都不按自動就執行呢?🤔
  • 下次再説!