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
  1. :%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
  • 「*」跳到下一個搜尋字串
  • 「#」跳到上一個搜尋字串

回應 (Leave a comment)