2012
Apr
25
使用 vim 開發程式的時間不長,有很多指令仍在學習當中,這裡記錄一些 vim 相關的指令與設定。
16進位數字與純文字之間的轉換
在比對檔案的時候,通常需要視檢檔案的原始內容,當看原始碼沒辦法解決問題時,就會須要看 16 進位的文字內容,方式如下。
- vim -b filename : 先用 -b 打開一個檔案
- :%!xxd : 輸入這個指令,可以把檔案內容轉成 16進位格式顯示。
- :%!xxd -r : 轉回正常文字
印出 16 進位的檔案
- hexdump file -C
增加副檔名開啟的對應 syntax ,寫入 .vimrc 即可
- au BufRead,BufNewFile *.sjs set filetype=javascript
vim 中的 Grep 功能
- [:digit:] 比對數字
- [:alpha:] 比對英文
- [[:digit:]]\+ 比對長度 1 以上的數字
- [[:digit:]]\{3\} 比對三次
- a{3,6} 長度三到六的 「a」
- [_]\? 可出現 or 不出現
/[[:digit:]]\+ ,在 vim 中,先輸入一個「/」 ,然後再輸入「[[:digit:]]\+ 」,就可以搜尋出所有的數字。
vim 文字的 replace
將所有的 aaa 取代成 bbb, 「%」代表操作整個檔案。
Example
- :%s/aaa/bbb/g
將 第 10 行到第 20 行的 aaa 取代成 bbb, 「10,20」 代表只操作 第 10 行 至 第 20 行。
- :10,20s/aaa/bbb/g
最後一個 g 代表同一行出現兩次以上 aaa 時,會全部取代,如果沒有加上 g 這個參數,當同一行出現二次 aaa ,這時只有第一個 aaa 會變成 bbb。
vim 熱鍵
- :help key-notation :看 vim 熱鍵設定
- zR : 打開所有摺疊的 folder
- zM : 收起所有可摺疊的 folder
- 「*」跳到下一個搜尋字串
- 「#」跳到上一個搜尋字串