最近才發覺 vim 有強大的批次處理功能, 相見恨晚啊。
在命令列同時開啟多個檔案到多個 tab
vim -p module/*.h
開啟 module 目錄下全部 .h 檔, 用一個 tab 編輯一個檔案。
需配合 tabpagemax 使用 (set tabpagemax=1000), 預設 tabpagemax=10, 不太夠用。
在 vim 內開啟多個檔案到多個 tab
:args module/*.h :argdo :tabe
效果同上一個作法。但 argdo 為了加速讀檔會先關掉 syntax, 要自己加指令開啟 syntax:
:args module/*.h | execute 'argdo tabe %' | syntax on
在 vim 內更改全部 tab 內容並存檔
:tabdo :% s/xxx/ooo/ :tabdo :w
第一行對全部 tab 逐一執行 :% s/xxx/ooo/, 第二行則是逐一執行 :w。一但有 tab 無法執行指令, 就會停下來。
:tabdo 可用的場合很多, 比方說我習慣用 vim -p 一次開啟多個 core dump 的 backtrace, 然後用:tabdo normal zR unfold 全部檔案, 還有用 :tabdo 下指令 highlight 關鍵字:
:tabdo hi KeywordTemp ctermfg=red :tabdo syn match KeywordTemp /SOME_KEYWORD/方便閱讀不同 core dump 中共通的部份。
沒有留言:
張貼留言