ㄟ,是不是在灌水呀!怎麼開個檔也成一個單元?那您就錯了,在 Vim 裡叫檔的花樣可多了,而且又可以多檔編輯,各編輯中的檔案還可以互通訊息,這裡面學問可大著呢!Vim 就更騷包了,也學人家檔案可以加密,雖說是噱頭,但也還滿好用的。
| vim + 檔名 | 這樣開檔後,游標會落在檔案最後一行的行尾,在檔案屁屁後幹什麼呢?方便您可以繼續編輯嘛!:-) |
| vim +n 檔名 | 開檔後,游標會落在第 n 行的行首。 |
| vim +/string 檔名 | 還記得嗎? / 就是尋找指令,這樣進入檔案後游標就會落在第一個找到的 string 上,還可以按 n 繼續找 string 哦!喔,string 還可以使用 regexp 來表示喔。 |
多檔編輯會有兩種情形,一種是在進入 vim 前所用的參數就是多個檔(這種情形稱為 argument list)。另一種情形是進入 vim 後另外再開其它的檔(稱為 buffer list)。不過都可以統稱為 buffer。
| :n | 編輯下一個檔案。 |
| :2n | 編輯下二個檔案。 |
| :N | 編輯前一個檔案。注意,這種用法只能用於 argument list 的情形。 |
| :e 檔名 | 這是在進入 vim 後,在不離開 vim 的情形下再開其它檔案。只要您要編輯的檔案是在目前目錄,Tab 補全鍵還是可以使用。 |
| :e# 或 Ctrl+^ | 編輯前一個檔案,用於兩檔互相編輯時相當好用。這種用法不管是 argument list 或 buffer list 檔案間皆可使用。還記得嗎?# 代表的是前一次編輯的檔案。 |
| :files | 或 :buffers 或 :ls,會列出目前 buffer 中的所有檔案。在 elvis 中可使用 :b 來叫出 buffers。在 buffers 中,減號 -表示這個 buffer 並未載入,不過,不必擔心,載入相當快速的。加號 + 表示這個 buffer 已經修改過了。# 代表前一次編輯的檔案,% 是目前編輯中的檔案,這兩個代號應該很熟悉了吧! |
| :bn | buffer next。編輯次一個 buffer 的檔案。 |
| :bp | buffer previous。編輯前一個 buffer 的檔案。 |
| :bl | buffer last。編輯 buffer 中最後一個檔案。以上兩個指令 elvis 不適用。 |
| :b檔名或編號 | 移至該檔。 |
在 :ls 中就會出示各檔案的編號,這個編號在未離開 vim 前是不會變的。這個指令在 elvis 也是可以使用。當然 :e#編號 也是可以的,這樣的用法則是所有 vi clone 都通用了。如果您是使用 Vim 的 GUI,那就在功能表上就會有 Buffers 這個選項,可以很容易的知道及移動各 buffer 間。
| :bd(elete) | buffer 在未離開 vim 前是不會移除的,可使用這個指令移除。其實移除她幹什麼呢?vim 是您在叫用時才會載入的,因此這些 buffers 並不是像 cache 一般要佔記憶體的。 |
| :e! 檔名 | 這樣也是會開檔,但會放棄目前編輯檔案的改變,否則如果檔案已有變動,vim 預設是不讓您隨便離開的。:e! 後不接什麼的話,代表捨棄一切修改,重新載入編輯中檔案。 |
| :f 或 Ctrl+g | 顯示目前編輯的檔名、是否經過修改及目前游標所在之位置。 |
| :f 檔名 | 改變編輯中的檔名。(file) |
| :r 檔名 | 在游標所在處插入一個檔案內容。(read) |
| :35 r 檔名 | 將檔案插入至 35 行之後。 |
| gf | 這是 vim 的特殊叫檔法,會叫出游標所在處的 word 為名的檔案,當然,這個檔案要在目前目錄內,否則會開新檔案。 |
哦!好像有點給他複雜,主要原因是偶文筆不好啦!不過您何不選個順手的來用就可以了,選定了,以後就是使用他,這樣就不會那麼複雜了。:-)
| :q | 如本文有修改而沒存檔,會警告,且無法離開。(quit) |
| :q! | 捨棄所有修改,強迫離開。 |
| :wq | 存檔後離開。縱使檔案未曾修改也是會再存一次檔。 |
| :x | 也是存檔後離開,但如果檔案沒有修改,則不會做存檔的動作。 |
| ZZ | 和 :x 完全一樣,隨您高興用哪一個。 |
| :w 檔名 | 另存他檔。不加檔名就是寫入原檔。(write) |
:q 及 :q! 是對目前編輯中的檔案作用,如果多檔編輯的情形並不會離開 vim,這時可下 :qa 或 :qa! 來整個離開 vim。a 就是 all 的意思。:指令!,這個 ! 的意思是強迫中止目前正在編輯的動作,而去執行所下的指令。各位應該到目前為止碰過好幾次了吧!
小心!vim 一開檔就會有個 .檔名.swp 這個檔,是為了緊急回復用的,一般是在您所開檔案的所在目錄,這是個隱藏檔,ls 要有 -a 參數才看得到,您加密的功能並沒有作用在這個 swp 檔,因此 root 還是知道您在寫些什麼關於他的壞話的。:-)當然啦!山不轉,路轉,路不轉,人轉,您也是可以把 swap 的功能關掉的 :set noswf 就行了!但如果您編輯的是大檔案,則不建議您把 swap 關掉,這樣會很吃記憶體的。
elvis 的話,其暫存檔是統一集中存放在 /var/tmp/*.ses,權限是檔案所有者始能讀寫。Vim 的早期版本,其 *.swp 檔是依原檔案的權限來設定的,最近的版本則從善如流,已經改成檔案所有人始能讀寫,就是 -rw---- 啦!
vim -r 檔名,或進入 vim 後,下 :recover 檔名,來回復。
Compiled by Edward G.J. Lee (2003-03-03)