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

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

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

c.文件多于窗口數
一般格式
vim -o3 file1 file2 file3 file4 上下排列 vim -O3 file1 file2 file3 file4 左右排列
案例
vim -O3 demo.txt demo_1 test1.txt test2.txt
效果
打開三個窗口,每個窗口有一個文件;因為命令是打開4個文件,故有一個文件隱藏,不能顯示

d.窗口多于文件數
一般格式
vim -o4 file1 file2 file3 上下排列 vim -O4 file1 file2 file3 左右排列
案例
vim -o4 demo.txt demo_1 test1.txt
效果
打開四個窗口,前3個窗口都有一個文件;因為命令是打開四個窗口,故多出一個窗口,是空白,沒有打開文件

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

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

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

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

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

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

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

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

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

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

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

三、窗口間文件操作
光標所在的窗口,稱為當前窗口。通過快捷鍵可以切換到需要的窗口。
1.當前窗口命令模式下的復制
命令模式下:
- yy 復制當前行
- dd 刪除當前行
切換窗口,仍在命令模式下:
- p 在當前行后粘貼
- P在當前行前粘貼
2.當前窗口編輯模式下的復制
可用鼠標選擇多行內容或字符,按ctrl+insert復制
切換窗口,仍在編輯模式下:
按shift+insert復制
3.當前窗口底行模式下的刪除或復制
在當前窗口底行模式下,錄入:
2,4d #將刪除2-4行內容,內容存入無名寄存器
切換窗口,仍在底行模式下:
錄入:
put
無名寄存器內容將粘貼到當前行的后面
切換到命令模式下:
- 按p,無名寄存器內容將粘貼到當前行的后面
- 按P,無名寄存器內容將粘貼到當前行的前面
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
在Windows的Apache服務器上配置對PHP和CGI的支持
這篇文章主要介紹了在Windows的Apache服務器上配置對PHP和CGI的支持,其中CGI腳本文中演示的為Perl示例,需要的朋友可以參考下2015-07-07
BT寶塔Linux服務器管理助手架設VPS面板(安裝及初始設置應用)
這篇文章主要介紹了BT寶塔Linux服務器管理助手架設VPS面板也是就是BT寶塔助手安裝及初始設置應用演示,需要的朋友可以參考下2017-04-04

