Linux?CentOS7?vim多文件與多窗口操作方式
窗口是可視化的分割區(qū)域。Windows中窗口的概念與linux中基本相同。連接xshell就是在Windows中新建一個(gè)窗口。而vim打開一個(gè)文件默認(rèn)創(chuàng)建一個(gè)窗口。同時(shí),Vim打開一個(gè)文件也就會(huì)建立一個(gè)緩沖區(qū),打開多個(gè)文件就會(huì)創(chuàng)建多個(gè)緩沖區(qū)。
本文討論vim中打開多個(gè)文件與多個(gè)窗口情況下,如何操作。
對(duì)于vim多文件的編輯與操作,可以參考《Linux CentOS7 vim多文件編輯》。
對(duì)于vim多窗口編輯,可以參考《Linux CentOS7 vim多窗口編輯》。
一、創(chuàng)建多個(gè)窗口
我們用vim打開文件時(shí),默認(rèn)是打開一個(gè)文件,一個(gè)窗口。我們首先討論如何打開多個(gè)文件和多個(gè)窗口。
1.一次打開多個(gè)窗口
在用vim打開文件時(shí),可以添加選項(xiàng),設(shè)置打開多少文件,多少窗口。
其中,-on可以指定上下排列n個(gè)窗口,而-On可以指定左右排列n個(gè)窗口。
o是英語單詞open的首字母;n是一個(gè)整數(shù),指定打開窗口的數(shù)量。
a.多個(gè)窗口與一個(gè)文件
基本格式
vim -on file 上下排列 vim -On file 左右排列
案例
vim -o3 create_win
效果
打開上下排列的三個(gè)窗口,只有一個(gè)窗口中打開一個(gè)文件

b.窗口數(shù)與文件數(shù)一致
基本格式
vim -on file1 file2…filen 上下排列 vim -On file1 file2…filen 左右排列
案例
vim -o3 demo.txt demo_1 demo1.txt
效果
打開上下排列的三個(gè)窗口,每個(gè)窗口中打開一個(gè)文件

案例
vim -O4 demo.txt demo_1 test1.txt test2.txt
效果
打開左右排列的三個(gè)窗口,每個(gè)窗口中打開一個(gè)文件

c.文件多于窗口數(shù)
一般格式
vim -o3 file1 file2 file3 file4 上下排列 vim -O3 file1 file2 file3 file4 左右排列
案例
vim -O3 demo.txt demo_1 test1.txt test2.txt
效果
打開三個(gè)窗口,每個(gè)窗口有一個(gè)文件;因?yàn)槊钍谴蜷_4個(gè)文件,故有一個(gè)文件隱藏,不能顯示

d.窗口多于文件數(shù)
一般格式
vim -o4 file1 file2 file3 上下排列 vim -O4 file1 file2 file3 左右排列
案例
vim -o4 demo.txt demo_1 test1.txt
效果
打開四個(gè)窗口,前3個(gè)窗口都有一個(gè)文件;因?yàn)槊钍谴蜷_四個(gè)窗口,故多出一個(gè)窗口,是空白,沒有打開文件

2.逐步打開多個(gè)窗口
我們先打開一個(gè)文件(或多個(gè)文件),單一窗口。在底行模式下,運(yùn)用命令增加窗口??梢远啻沃貜?fù)操作打開任意多窗口。
操作目標(biāo)
打開三個(gè)文件,分布在三個(gè)窗口中!
a.先打開一個(gè)窗口
vim file1 file2 file3
案例
vim demo.txt for1.sh test1.sh
效果
打開窗口后,利用命令buffers查看打開文件列表

b.再創(chuàng)建一個(gè)新窗口
在當(dāng)前窗口,有三類命令創(chuàng)建新的窗口,功能相同,可根據(jù)愛好使用。
- sp/vs [files] 水平/垂直
- new/vnew [files] 水平/垂直
- ctrl+w+s/v 水平/垂直
案例
我們應(yīng)用:vs for1.sh命令在當(dāng)前窗口的左側(cè)新建一個(gè)窗口,且打開文件for1.sh

c.繼續(xù)創(chuàng)建新窗口
在前述方法的基礎(chǔ)上,可以創(chuàng)建需要的窗口。
案例
使用new test1.sh 在當(dāng)前窗口的上方再創(chuàng)建一個(gè)新窗口,同時(shí)打開文件test1.sh

由此類方法創(chuàng)建的窗口,與一次創(chuàng)建多個(gè)窗口不同,可以設(shè)計(jì)多個(gè)窗口的排列位置。
二、窗口內(nèi)文件處理
關(guān)于窗口大小的調(diào)整及位置的變化,我們不作討論,可以參考前述文章《Linux CentOS7 vim多窗口編輯》。
我們關(guān)注在當(dāng)前窗口中,如何添加文件、切換文件、查看文件等操作。后續(xù)討論窗口間的文件復(fù)制與粘貼。
1.添加文件
在窗口中再添加新的文件,或打開文件,有多種方法。可根據(jù)習(xí)慣選擇合適的。
a.o[pen]
底行模式下,錄入命令
:o file
后跟文件名,將打開該文件。如果該文件在當(dāng)前目錄下存在,將打開;如果文件不存在,將新建該文件。(如o后面不加文件名,將會(huì)打開當(dāng)前文件,相當(dāng)于沒有變化)。

b.e[dit]
底行模式下,錄入命令
:e file
后跟文件名,將打開該文件。如果該文件在當(dāng)前目錄下存在,將打開;如果文件不存在,將新建該文件。
前兩個(gè)添加或打開文件的命令,是打開后即可以編輯。
c.badd
底行模式下,錄入命令
:badd file
后跟文件名,將打開該文件。如果該文件在當(dāng)前目錄下存在,將打開;如果文件不存在,將新建該文件。
該命令是添加一個(gè)文件到緩沖區(qū)內(nèi),并不進(jìn)行編輯。與前兩個(gè)添加或打開文件的命令完全不同。
如果該命令添加的文件在其他窗口中打開,執(zhí)行該命令將沒有效果。

利用ls命令查看緩沖區(qū)存在的文件

2.查看文件
在當(dāng)前窗口的底行模式下,可以用命令查看緩沖區(qū)存在的文件,也可以用快捷鍵循環(huán)查看存在的文件。
a.命令查看
底行模式下,可以用命令ls、files和buffers任意一個(gè)查看緩沖區(qū)存在的文件。如下圖:

在文件列表中,第一列,是文件編號(hào),可以在底行模式下使用該編號(hào)。如果有文件被刪除,編號(hào)將會(huì)不連續(xù)。
第二列,有多種符號(hào)同,代表不同的含義,其中最常用的是%a表示正在編輯的文件;#是前一個(gè)編輯的文件。
第三列,是文件名。
第四列,表示光標(biāo)所處的行數(shù)。如是第0行,表示文件未被編輯過。

b.快捷鍵循環(huán)查看
底行模式下,可以用命令:b 再按Tab鍵,循環(huán)查看緩沖區(qū)存在的文件。如下圖:

再按一次Tab鍵,顯示2號(hào)文件for1.sh…
如果顯示某一文件后,按回車確認(rèn)鍵,將在當(dāng)前窗口中打開此文件。
在使用b命令時(shí),如果b后沒有空格,直接按Tab鍵,將瀏覽以b開頭的命令:
如:bNext badd ball…
如果顯示某一命令后,按回車確認(rèn)鍵,將執(zhí)行該命令。
如執(zhí)行ball,將按文件數(shù)打開窗口,每個(gè)窗口一個(gè)文件:

c.隱藏文件
底行模式下,錄入命令
:hide
該文件將隱藏,同時(shí),在多窗口情況下,將關(guān)閉該窗口。
3.切換文件
- :b+next b+n n [n];激活列表中的下一個(gè)文件,n后面有文件名時(shí),激活該文件
- :b+previous b+p;激活列表中的前一個(gè)文件
- :b+f b+l 激活列表中的第一個(gè)和最后一個(gè)文件
- :b+# 激活最近訪問的文件
- :bulffer+編號(hào);:b+編號(hào);:buffer+文件名;:b+文件名;激活相應(yīng)編號(hào)的文件
給窗口重命名也是一種重新打開文件的方式:
:f file
如果文件存在,將打開文件;文件不存在,將新建文件。
4.刪除文件
刪除文件是在當(dāng)前窗口中的底行模式下,利用bd命令刪除緩沖區(qū)的文件。
:bd[elete] 刪除當(dāng)前正在編輯的文件
:bd n/file
d是delete的首字母,執(zhí)行bdelete與bd命令一樣。
n是緩沖區(qū)文件的編號(hào),如:bd 2 將刪除2號(hào)文件;
file是緩沖區(qū)的文件名,如:bd demo.txt 將刪除demo.txt文件。
5.關(guān)閉文件
關(guān)閉窗口不是退出緩沖區(qū)的文件,而是不在當(dāng)前窗口顯示。如退出某一窗口的文件,該窗口將自動(dòng)關(guān)閉。
有4種關(guān)閉窗口的方式,分別是:離開(quit)、關(guān)閉(close)、隱藏(hide)、關(guān)閉其他窗口。
- ^代表Ctrl鍵
- ^Wq 離開當(dāng)前窗口
- ^Wc 關(guān)閉當(dāng)前的窗口
- ^Wo 關(guān)閉當(dāng)前窗口以外的所有窗口
- quit 離開當(dāng)前窗口
- exit 退出當(dāng)前窗口
- q 或close #關(guān)閉當(dāng)前窗口
- only #保留當(dāng)前窗口,關(guān)閉其它所有窗口
- qall(qa) #退出所有窗口
- wall #保存所有窗口
6.瀏覽文件
在多窗口情況下,可以執(zhí)行命令瀏覽當(dāng)前目錄下的所有文件。此功能不常用,僅供參考。
- :ex 開啟目錄瀏覽器,可以瀏覽當(dāng)前目錄下的所有文件,并可以選擇
- :Sex 水平分割當(dāng)前窗口,并在一個(gè)窗口中開啟目錄瀏覽器,此命令與前述ex基本一樣。S是split的首字母,水平分隔窗口。
- :Vex 垂直分割當(dāng)前窗口,并在窗口中開啟目錄瀏覽器

三、窗口間文件操作
光標(biāo)所在的窗口,稱為當(dāng)前窗口。通過快捷鍵可以切換到需要的窗口。
1.當(dāng)前窗口命令模式下的復(fù)制
命令模式下:
- yy 復(fù)制當(dāng)前行
- dd 刪除當(dāng)前行
切換窗口,仍在命令模式下:
- p 在當(dāng)前行后粘貼
- P在當(dāng)前行前粘貼
2.當(dāng)前窗口編輯模式下的復(fù)制
可用鼠標(biāo)選擇多行內(nèi)容或字符,按ctrl+insert復(fù)制
切換窗口,仍在編輯模式下:
按shift+insert復(fù)制
3.當(dāng)前窗口底行模式下的刪除或復(fù)制
在當(dāng)前窗口底行模式下,錄入:
2,4d #將刪除2-4行內(nèi)容,內(nèi)容存入無名寄存器
切換窗口,仍在底行模式下:
錄入:
put
無名寄存器內(nèi)容將粘貼到當(dāng)前行的后面
切換到命令模式下:
- 按p,無名寄存器內(nèi)容將粘貼到當(dāng)前行的后面
- 按P,無名寄存器內(nèi)容將粘貼到當(dāng)前行的前面
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
linux系統(tǒng)下部署項(xiàng)目訪問報(bào)404錯(cuò)誤的解決方法
這篇文章主要為大家詳細(xì)介紹了linux系統(tǒng)下部署項(xiàng)目訪問報(bào)404錯(cuò)誤的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12
Linux內(nèi)核參數(shù)配置與驗(yàn)證詳細(xì)指南
在Linux系統(tǒng)運(yùn)維和性能優(yōu)化中,內(nèi)核參數(shù)(sysctl)的配置至關(guān)重要,本文主要來聊聊如何配置與驗(yàn)證這些Linux內(nèi)核參數(shù),希望對(duì)大家有一定的幫助2025-04-04
Linux使用mmap實(shí)現(xiàn)父子進(jìn)程間的通信
在Linux系統(tǒng)中,進(jìn)程間通信(IPC)是編程中常見的需求,傳統(tǒng)的IPC方式包括管道、消息隊(duì)列、共享內(nèi)存、信號(hào)量等,mmap函數(shù)可以將文件映射到進(jìn)程的地址空間,也可以用于創(chuàng)建匿名映射,從而實(shí)現(xiàn)進(jìn)程間的內(nèi)存共享,本文將詳細(xì)介紹如何在Linux中使用mmap實(shí)現(xiàn)父子進(jìn)程間的通信2025-11-11
nacos在linux下啟動(dòng)startup.sh報(bào)錯(cuò)問題及解決
遇到Nacos啟動(dòng)錯(cuò)誤提示“Permission denied”,可通過執(zhí)行命令chmod u+x *.sh給予startup.sh執(zhí)行權(quán)限,解決權(quán)限問題,啟動(dòng)成功,這是一種常見的解決Linux下腳本執(zhí)行權(quán)限問題的方法2023-03-03
一文詳解Linux下如何在vim里使用異步編譯和運(yùn)行
這篇文章主要介紹了如何在Linux的vim編輯器中使用異步編譯和運(yùn)行C++程序,具體功能包括在vim中直接構(gòu)建和運(yùn)行單個(gè)文件或整個(gè)項(xiàng)目,使用快捷鍵如F9、F10、F7、F8和F6進(jìn)行操作,此外,提到了使用兩個(gè)vim插件來實(shí)現(xiàn)這些功能,并提供了必要的配置文件和命令信息2025-10-10
Linux用戶層和內(nèi)核層鎖的實(shí)現(xiàn)方式
futex通過用戶態(tài)CAS與內(nèi)核阻塞協(xié)作,提升高并發(fā)性能,用戶態(tài)鎖與內(nèi)核鎖基于不同機(jī)制,ARM64原子操作依賴相同硬件指令,互斥鎖適配長(zhǎng)臨界區(qū),自旋鎖適合短臨界區(qū),需根據(jù)場(chǎng)景選擇2025-07-07
Linux上也有10個(gè)流行的Windows應(yīng)用程序
今天小編就為大家分享一篇關(guān)于在linux上也流行的windows程序,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-09-09

