2016-06-27

Vim 多視窗編輯檔案的操作方法

阿舍最常用多視窗來同時編輯二個或多檔案,因為,有些程式總是需要同時去編修多個程式,像是阿舍在寫模組的時候,通常,都會同時寫測試用的程式,所以,只要模組的程式有改到,那麼,測試的程式就會需要一起被調整,這種時候,一次可以看到二邊的程式,對阿舍來說,真的是很方便的事哩 !


另外,阿舍也發現有一種時候很適合利用多視窗的功能來編輯檔案或撰寫程式,那就是在修改或撰寫一個比較長的程式或文件的時候。以前,阿舍在處理這類的長文件時,總是一直在換頁或是透過搜尋來快速在檔案的不同區域來切來切去,後來,因為阿舍不小心將兩個視窗開在同一個檔案的不同位置還在另一邊做了修改後,才發現,原來,二邊會同時修改的,所以,之後,阿舍要同時在一個檔案的不同區域裡換來換去的話,阿舍就會把這個檔案同時開在多個視窗來處理,這樣,就可以省掉阿舍不少的操作時間哩 ...

好了,接下來就要說明如何在 Vim 切分出多個視窗了,阿舍的習慣是先進入 Vim 後再按 Ctrl-W + V 來切出至少二個視窗,然後,用 :Ex 指令來選擇要開啟的檔案,之後,再用 Ctrl-W + L 切到右邊的視窗,接著,再用一次 :Ex 指令打開檔案,接下來,就可用 Ctrl-W + H 和 Ctrl-W + L 在左右二個視窗間切來切去了,下面就是阿舍操作的指令範例 ... ( 提醒一下,Vim 的左下上右是 HJKL 鍵哩 ... )

# 啟動 Vim
$ vi
# 垂直分隔視窗
Ctrl-W + V
# 開啟檔案列表工具
:Ex
# 將游標移到左邊視窗
Ctrl-W + L
:Ex
# 將游標移到右邊視窗
Ctrl-W + H

一般的情況下,阿舍只會用 Ctrl-W +V 來把畫面垂直切成左右二個視窗,但是,阿舍,偶爾還是會需要用到第三個視窗來做些處理,這個時候,阿舍就不會再多切一個垂直視窗出來,而是會在左右的其中一個視窗用 Ctrl-W + S 來切出一個水平視窗,讓其中一個視窗一分為上下二個視窗哩,依阿舍的經驗來說,通常,切成三個視窗再搭配 :bn 指令來切換檔案就已經夠用了,如果,再多切幾個視窗出來,光是在視窗間切換就很不效益了哩 ! ...

# 將游標移到右邊視窗
Ctrl-W + L

# 水平分隔視窗
Ctrl-W + S

#將視窗內的檔案切換到下一個檔案
:bn

通常,接下來,和阿舍一樣會遇到的視窗操作問題,應該就會是變更視窗大小和移動視窗這二件事吧 ! 有時候,阿舍會把一邊視窗的檔案開來參考用,而另一邊才是阿舍真的要編輯的檔案,阿舍習慣常編輯的那邊要有比較大的空間,所以,就會想要調整阿舍在編輯的這一邊的視窗的大小,不過,這有點小麻煩,除了垂直和水平視窗的調整按鍵有不同之外,就是每按一次按鍵就只能調一小部分,不能一次按到想要的大小哩 ...

舉例來說,阿舍想要把左右兩個視窗的大小調成 3:7,然後,阿舍現在是在左邊的視窗,所以,阿舍可以直接在這個視窗**多按幾次** Ctrl-W + < (小於符號)鍵來縮減阿舍目前所在視窗的寬度,直到阿舍滿意為止,不然,也可以按下 Ctrl-W + L 鍵來切換到右邊的視窗,再**按幾次** Ctrl-W + > (大於符號) 鍵增加右邊視窗的寬度來達到阿舍想要的大小哩 ...

# 縮減目前視窗的左右寛度
Ctrl-W + >

# 增加目前視窗的左右寛度
Ctrl-W + <

對 ! 增減視窗的寛度是用 Ctrl-W + > 符號來增加,用 Ctrl-W + < 符號來減少,而要增減水平視窗的高度的話,那就用要用加號和減號,也就是用 Ctrl-W + + (加號) 鍵增加視窗的高度,用 Ctrl-W + - (減號) 鍵降低視窗的高度,但是,不論是寛度或高度,操作都是類同的,調一邊,相連的另一邊就會跟著變動的。

# 縮減目前視窗的上下高度
Ctrl-W + +

# 增加目前視窗的上下高度
Ctrl-W + -

最後,阿舍要來說明如何移動視窗,老實說,阿舍是很少會用到移動視窗的功能,因為,阿舍有習慣的編輯畫面的位置,所以,阿舍大都會把游標先移到阿舍習慣用來編輯檔案的視窗 (對阿舍來說,一般是右邊這邊),然後,再用 :bn 指令來把視窗裡的檔案切換到阿舍要編輯的檔案,因此,阿舍就幾乎不會用到移動視窗這件事哩 ...

另外,阿舍不太用移動視窗的功能的原因,還有一個,那就是,視窗移動的結果不一定和阿舍想像的一樣哩,如果是在「只有」多個垂直視窗的情況下,只用 Ctrl-W + Shift + H 和 Ctrl-W + Shift + L 來把視窗做左、右移動的話,或是,在「只有」多水平視窗的情況下,用 Ctrl-W + Shift + J 或 Ctrl-W + Shift + K 來把視窗做上、下移動的話,大概都不會有什麼問題哩 !

# 視窗往左移
Ctrl-W + Shift + H
# 視窗往下移
Ctrl-W + Shift + J
# 視窗往上移
Ctrl-W + Shift + K
# 視窗往右移
Ctrl-W + Shift + L

但是 ... 如果是在一個由水平和垂直視窗混合組成的畫面下,用上面提到的任一個方向來移動視窗的話,那就視窗的位置就有可能一整個都會亂掉,因此,阿舍才不會太想要使用移動視窗的功能哩 !


推薦閱讀


有疑問? 問題還是沒解決嗎? 歡迎下方留言提問和討論 😁

2 則留言 :

匿名 提到...

請問vim可以就是
3個視窗
左邊程式碼
右上角執行結果
右下角終端命令列嗎?

Arthur 提到...

Hello,

關於這件事,阿舍曾經花過一段時間來找 Vim 的解決方法,但是,都沒有阿舍想要的結果,所以,最後,阿舍是用 screen 指令來解決這個問題哩 ! ...

供參囉 ! ... ^^=

張貼留言

歡迎留言提問和討論 .... 😁