Linux CentOS7 vim多窗口編輯解讀
我們在用vim編輯文件時,有各種需求。如有時需要在多個文件之間來回操作,一會關閉一個文件,一會再打開另外一個文件,這樣來回操作顯得太笨拙。有時,vim編輯多行的大文件,來回查看、編輯前面一部分及最后一部分,一個窗口也不好編輯。又比如,想對一個文件修改,多次復制粘貼,一個窗口也不方便。
還好,linux提供了多文件多窗口的模式,讓我們在多個窗口中打開一個文件,或打開多個文件,可以對照修改與處理。
窗口是可視化的分割區(qū)域。Vim打開一個文件就會建立一個緩沖區(qū),其也可以分割成多個窗口。
為了簡化討論的復雜度,不考慮一個窗口打開多個文件的情況。感興趣的讀者可以參考《Linux CentOS7 vim多文件編輯》。
一、創(chuàng)建窗口
我們用vim打開文件時,默認是打開一個文件,一個窗口。我們從簡到繁,討論如何打開多個文件和多個窗口。
1.一次打開多個窗口
在用vim打開文件時,可以添加選項,設置打開多個文件、多個窗口。其中,-on可以指定上下排列n個窗口,而-On可以指定左右排列n個窗口。o是英語單詞open的首字母;n是一個整數(shù),指定打開窗口的數(shù)量。
a.兩個窗口1個文件
基本格式:
- vim -o2 file1 上下排列
案例:
- vim -o2 demo.txt
基本格式:
- vim -O2 file1 左右排列
案例:
- vim -O2 demo.txt
b. 多個窗口多個文件(文件多)
- vim -o3 file1 file2 file3 file4 上下排列
- vim -O3 file1 file2 file3 file4 左右排列
結果是有一個文件是隱藏的,未顯示
c.多個窗口多個文件(窗口多)
- vim -o4 file1 file2 file3 上下排列
- vim -O4 file1 file2 file3 左右排列
結果是有一個窗口是空白
2.逐步打開多個窗口
我們先打開一個文件,單一窗口。在底行模式下,添加命令,增加窗口。可以按要求打開任意窗口。
a.先打開一個窗口
- vim file1
(此處打開一個文件與打開多個文件影響不大)
案例:
- vim demo.txt
b.再創(chuàng)建一個新窗口
在當前窗口中,創(chuàng)建新窗口,有三大類命令。功能相同,可根據(jù)愛好使用。
(1)sp/vs
- :sp 上方新建一個窗口,仍是打開file1
- :vs 左邊新建一個窗口,仍是打開file1
如果命令后添加文件名,新建窗口中打開的將是新文件。
- :sp file2 上方新建一個窗口,打開文件file2
- :vs file2 左邊新建一個窗口,打開文件file2
sp是split分隔單詞的前兩個字符;而vs,有時寫作vsp,是vertical split的首字母。
(2)new/vertical new
- :new 上方新建一個窗口,仍是打開file1
- :new file2 上方新建一個窗口,仍是打開file2
new命令,將在當前窗口的上方創(chuàng)建一個新窗口,有文件名時,新窗口中打開該文件。
- :vnew 左邊新建一個窗口,仍是打開file1(v是vertical的簡寫)
- :vnew file2 左邊新建一個窗口,仍是打開file2
- :new+窗口名(保存后就是文件名)
(3) ctrl+w s/v
前兩種方法是在底行模式下,錄入命令創(chuàng)建新窗口,本方法是利用快捷鍵,新建窗口(因方法簡單,僅能創(chuàng)建原文件的新窗口)。
- ctrl+w s 水平分割
- ctrl+w v 垂直分割
這里的w是window的意思??旖萱Ictrl+w后面會多次用到,再加不同的選項,產(chǎn)生不同的功能與效果。
每個窗口可以繼續(xù)被無限分割(看屏幕是否足夠大)。
c.繼續(xù)創(chuàng)建新窗口
在前述方法的基礎上,可以創(chuàng)建需要的窗口。可以使用:sp/vs,也可以用:new/vnew。通過此方法可以創(chuàng)建三個窗口:可以是上方一個窗口、下方兩個窗口,或者是上二下一、一左二右、二左一右。
由此類方法創(chuàng)建的窗口,與一次創(chuàng)建多個窗口不同,各有利弊。
二、窗口位置大小的調整
可以用鼠標先調整xshell會話的窗口大小,再調整vim中各窗口大小。
1.窗口大小變化
a.均分
- ctrl+w = 使所有窗口等寬、等高
b.調高
- ctrl+w _ 最大化活動窗口的高度
- [n]ctrl+w _ 把活動窗口的高度設置為n行,如40ctrl+w _
- ctrl+w + 把活動窗口的高度增高1字符
- ctrl+w n+ 把活動窗口的高度增高n字符
- nctrl+w + 把活動窗口的高度增高n字符
- ctrl+w - 把活動窗口的高度減少1字符
- ctrl+w n- 把活動窗口的高度減少n字符
- nctrl+w - 把活動窗口的高度減少n字符
c.調寬
- ctrl+w | 最大化活動窗口的寬度
- [N]ctrl+w | 把活動窗口的寬度設置為N列
- ctrl+w > 把活動窗口的寬度增寬1字符
- ctrl+w n> 把活動窗口的寬度增寬n字符
- nctrl+w > 把活動窗口的寬度增寬n字符
- ctrl+w < 把活動窗口的寬度減少1字符
- ctrl+w n< 把活動窗口的寬度減少n字符
- nctrl+w < 把活動窗口的寬度減少n字符
(此由可見先按n與先按ctrl+w效果相同)
2.窗口位置調換
窗口位置調換實際上就是把左邊的窗口調整到右邊或上邊的窗口調整到下邊等等。
在vim中,hjkl是移動光標的快捷鍵,與Ctrl+w相結合,可以對多個窗口進行窗口位置調換。
- Ctrl+w+ H[JKL] 多窗口調換
- Ctrl+w+L 當前窗口移動到最右邊;+H當前窗口移動到最左邊
- Ctrl+w+x 在只有兩個窗口的情況下,通過此快捷鍵可以對調窗口位置
如何把上下排列的兩個窗口調整為左右排列?
按Ctrl+w+H,當前窗口將調整為左邊,另一窗口為右邊排列。其他窗口位置調換可以自行測試。
三、切換當前窗口
光標所在的窗口,稱為當前窗口。通過快捷鍵可以切換到需要的窗口。
1.循環(huán)切換窗口
- Ctrl+w + w
按住Ctrl,再按w,就可以切換窗口。再按一次w,從當前窗口切換到下一個窗口(順時針變化)。
案例:
當前窗口在左邊,我們記為窗口中。按一次Ctrl+w + w,光標移動到右上窗口中。如果還想切換,再按一次Ctrl+w + w,光標移動到右下窗口中。
所有的vim文件編輯,都是對當前窗口有效。執(zhí)行底行命令,也是針對當前窗口。
2.根據(jù)方向鍵切換窗口
- Ctrl+w + ↑↓→←
此方法不受限于順時針切換窗口,可以從當前窗口切換到另一窗口,未到需要的窗口,可以多次按Ctrl+w +方向鍵(一次只能按一個方向鍵)。
3.按字母鍵切換窗口
- Ctrl+w + h j k l
此方法與上一方法基本相同。在vim中,hjkl就是方向鍵。
操作簡單,不作演示。
四、退出窗口(文件)
文件內(nèi)容的修改、保存與文件多少、窗口多少關系不大,與單文件單窗口方法相同,不再討論。
跨文件跨窗口的復制與粘貼,在理解剪切板的情況下,會切換窗口就可以順利完成操作,此處也不作贅述。
僅討論如何保存退出、強制退出等案例。
一般地講,退出文件就是關閉窗口。但有時關閉窗口并不能退出文件編輯。
為了保證文件能正常退出,在編輯完文件后,及時保存。
1.單個文件(窗口)退出
a.退出文件就是關閉窗口
退出文件命令是:
- :wq;:q;:q!;:x;:ZZ
b.關閉窗口就是退出文件
關閉當前窗口的命令是:
- :close
快捷鍵
- Ctrl+w+q
2.所有文件的退出
所有文件的退出也是所有窗口關閉。
關閉多個窗口可以用:qa!,也可以使用:close,最后一個窗口不能使用close關閉。使用close只是暫時關閉窗口,其內(nèi)容還在緩存中,只有使用q!、w!或x才能真正退出。
對于打開文件數(shù)與打開窗口數(shù)不一致的情況,比較復雜,我們將在vim多文件多窗口編輯的文章中展開討論。
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
如何使用Apache Kafka 構建實時數(shù)據(jù)處理應用
?Apache Kafka 在實時數(shù)據(jù)處理中的重要性源于其高性能、可靠性、可擴展性和靈活性,這篇文章主要介紹了使用Apache Kafka 構建實時數(shù)據(jù)處理應用,需要的朋友可以參考下2024-07-07Xshell5連接虛擬機中的Linux的方法以及失敗原因解決
這篇文章主要介紹了Xshell5連接虛擬機中的Linux的方法以及失敗原因解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-07-07systemd添加自定義系統(tǒng)服務設置自定義開機啟動的方法
下面小編就為大家?guī)硪黄猻ystemd添加自定義系統(tǒng)服務設置自定義開機啟動的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-12-12