這篇介紹尋找替換、命令指令與視窗操作,其中尋找中的正則表達式挪到正規語言的文章做解說,視窗操作可配合linux的screen使用。Enjoy it !
尋找與替換
尋找
- / 在 c-mode 的情形下,按 / 就會在左下角出現一個 /,然後鍵入您要尋找的字串,按Enter 就會開始找。
- ? 和 / 相同,只是 / 是向前(下)找,? 則是向後(上)找。
- * 尋找游標所在處之 word(要完全符合)。
- # 同上,但 * 是向前(下)找,# 則是向後(上)找。
- g* 同 * ,但部份符合即可。
- g# 同 # ,但部份符合即可。
- n 繼續尋找。
- N 繼續尋找(反向)。
替換
:[range]s/pattern/string/[c,e,g,i]
- range 指的是範圍,1,7 指從第一行至第七行,1,$ 指從第一行至最後一行,也就是整篇文章,也可以 % 代表。還記得嗎? % 是目前編輯的文章,# 是前一次編輯的文章。
- pattern 就是要被替換掉的字串,可以用 regexp 來表示。
- string 將 pattern 由 string 所取代。
- c confirm,每次替換前會詢問。
- e 不顯示 error。
- g globe,不詢問,整行替換。
- i ignore 不分大小寫。
[用心去感覺] c,e,g,i
g 大概都是要加的,否則只會替換每一行的第一個符合字串。可以合起來用,如cgi,表示不分大小寫,整行替換,替換前要詢問是否替換。
[實例] :%s/Edwin/Edward/g
這樣整篇文章的 Edwin 就會替換成 Edward。
開檔與關檔
開檔
- vim 檔名 這樣開檔後,游標會落在檔案最後一行的行尾
- vim n 檔名 游標會落在第 n 行的行首。
- :e 檔名 這是在進入 vim 後,在不離開 vim的情形下再開其它檔案。只要您要編輯的檔案是在目前目錄,Tab 補全鍵還是可以使用。
- :e# 編輯前一個檔案,用於兩檔互相編輯時相當好用。# 代表的是前一次編輯的檔案。
- ls 會列出目前 buffer 中的所有檔案。
- :f 顯示目前編輯的檔名、是否經過修改及目前游標所在之位置。
- :f 檔名 改變編輯中的檔名。(file)
離開
- :q 如本文有修改而沒存檔,會警告,且無法離開。(quit)
- :q! 捨棄所有修改,強迫離開。
- :wq 存檔後離開。縱使檔案未曾修改也是會再存一次檔。
- :x 也是存檔後離開,但如果檔案沒有修改,則不會做存檔的動作。ZZ 和 :x 完全一樣,隨您高興用哪一個。
- :w 檔名 另存他檔。不加檔名就是寫入原檔。(write)
緊急回復
vim -r 檔名,或進入 vim 後,下 :recover 檔名,來回復。
[用心去感覺] 強制符號 !
:q 及 :q! ,是對目前編輯中的檔案作用,如果多檔編輯的情形並不會離開 vim,這時可下 :qa 或 :qa! 來整個離開 vim。a 就是 all 的意思。
:指令!,這個 ! 的意思是強迫中止目前正在編輯的動作,而去執行所下的指令。各位應該到目前為止碰過好幾次了吧!
視窗操作
開新視窗會在原視窗上半方,也就是視窗一分為二。凡視窗操作的按鍵都是由 Ctrl-w 來起頭的,w 就是 window。
- Ctrl-w n 即 :new。開一空的新視窗。
- Ctrl-w s 即 :sp(lit),會開一新視窗,且原檔分屬兩個視窗。
- Ctrl-w f 開一新視窗,並編輯游標所在處之 word 為檔名的檔案。
- Ctrl-w q 即 :q 結束分割出來的視窗。
- Ctrl-w o 即 :only! 使游標所在之視窗,成為目前唯一顯示的視窗其它視窗會隱藏起來。
- Ctrl-w j 移至下視窗。
- Ctrl-w k 移至上視窗。
- :sp 檔名 開另一新視窗來編輯檔案。
書籤功能(marks)
可以在文章中的某處做個記號,呼叫 mark 時會回到原處。
- mx x 代表 26 個小寫英文字母,這樣游標所在處就會被 mark。
- `x 回到書籤原設定位置。` 是 backward quote,就是 Tab 鍵上面那一個。
- 'x 回到書籤設定行行首。' 是 forward quote,是 Enter 鍵隔壁那一個。
- 數目字的用法比較特殊,'0 是回到前一次編輯檔案中離開前的最後位置,'1 則是回到前二次編輯檔案的最後位置,依此類推。您不必使用 m 來標示,vim 會自動記憶。
- :marks 得知目前所有書籤的列表。
References
鳥哥的 Linux 私房菜 - 第九章、vim 程式編輯器
http://linux.vbird.org/linux_basic/0310vi.php#vi_vim_why
vgod/vimrc
https://github.com/vgod/vimrc
大家來學VIM(一個歷久彌新的編輯器) 作者:Edward Lee
http://www.study-area.org/tips/vim/index.html