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