vi substitution 小技巧 |
2008/09/01 ~ 熊 ~ |
在不想、或不需寫 script 的前提下,有個很不錯的方法。
【例】
有一文字檔,內容如下,其等號右邊都要取代成相同的字串 “CLK_PORT”。
“DisRAM_1X12.WCLK” = “DisRAM_1X12.WCLK”
“DisRAM_2X12.WCLK” = “DisRAM_2X12.WCLK”
“DisRAM_3X12.WCLK” = “DisRAM_3X12.WCLK”
…
【vi 動作】
先 search “WCLK”,游標移到等號右邊,清除右列所有字元,再插入 “CLK_PORT”。之後都是相同動作。
如何把這些相同動作簡單化呢?
【好用小技巧】
用 editor 把會執行的 commands 記下來,此例為:nllllllllDA”CLK_PORT” 。copy this string and paste in vi,按 ESC,再 paste,再按 ESC,再 paste… 一直到所有的字串都取代完畢(類似巨集)。
【說明】
n:繼續往下尋找
l:向右移一個字元。此例找到 WCLK 之後,再右移八個字元到等號右邊的雙引號
D:刪除游標開始往右的所有字元
A:新增字元於行尾
謝謝你的分享,可能有 typo,執行結果不對。
倒是這個可用,s/= "DisRAM.*/= "CLK_PORT"/
s/\(".*\)DisRAM/\1CLK_PORT/