在linux下,假若需要對多個檔案的內容進行相互對照和參考,或需要將乙個檔案的某部分內容複製或貼上到另乙個檔案中,可通過vim同時開啟這些相關檔案進行編輯。
通過vim開啟的每個檔案都對應著乙個buffer(buffer是系統為開啟的檔案分配的記憶體空間),每個buffer都有乙個id。
1.在同一視窗下顯示多個檔案
命令:vim filename1 filename2
說明:上述命令同時開啟了filename1,filename2兩個檔案,不過檔案filename1的內容將佔據整個vim視窗,要想在各個檔案之間進行切換,我們可通過如下命令
:n 切換到下乙個檔案
:n 切換到上乙個檔案
:n filename2 切換到檔案filename2
我們提到每個開啟的檔案都對應著乙個buffer,故可通過切換buffer來達到切換檔案的目的,如下
:ls 列出vim開啟的所有檔案的資訊,包括檔名,buffer id等
:b2 切換到buffer id為2的buffer
:bn 切換到當前buffer的下乙個buffer
:bp 切換當前buffer的前乙個buffer
:bd 關閉當前buffer,對應檔案也隨之關閉
:bd2 關閉buffer id為2的buffer,對應檔案也隨之關閉
我們可通過安裝minibufexplorer外掛程式來簡化buffer的切換。不過該外掛程式有時會導致語法高亮顯示失效,我們可通過命令:syntax on來恢復高亮。
2.分割視窗,顯示多個檔案
對於在同乙個視窗下開啟多個檔案,對於各檔案之間內容的複製,剪下操作終究不方便,我們可使用命令對視窗進行分割,每個子視窗顯示乙個檔案
命令:vim -o filename1 filename2 水平分割視窗
vim -o filename1 filename2 垂直分割視窗
說明:
圖 1圖1中使用命令同時開啟檔案bitree.c和operatebitree(使用水平分割),得到如下圖2效果:
圖 2如果我們使用垂直分割,將得到如下圖3的效果
圖 3我們可按ctrl ww在各視窗之間進行切換。
通過該種方式可非常方便各檔案內容之間的複製與剪下操作,這裡順便簡單提一下複製,剪下與貼上操作命令
yy 複製游標所在行
dd 剪下游標所在行
5yy 複製從游標所在行開始計數的下五行文字
5dd 剪下從游標所在行開始計數的下五行文字
v(小寫) visual模式,通過上下左右鍵選擇游標「掃過」的所有字元
v (大寫) visual line 模式,通過上下鍵選擇游標「掃過」的所有行
ctrl + v visual block 模式,通過上下左右鍵選擇乙個矩形文字
y 複製在visual模式, visual line模式和visual block 模式下選擇的文字
d 剪下在visual模式, visual line模式和visual block 模式下 選擇的文字
p(小寫) 貼上, 貼上位置為游標所在行的下一行
p(大寫) 貼上, 貼上位置為游標所在行的上一行
u: 撤銷操作
r: 重做操作
a.假若我們通過vim開啟了多個檔案後,想在不關閉vim的情況下繼續開啟其他檔案,如檔案file,可在vim中使用如下命令:
:e file 不會分割視窗
:sp file 將會水平分割視窗
:vsp file 將會垂直分割視窗
b. vim和shell之間切換
:shell 切換到shell,此時vim在後台執行,在shell中輸入命令exit,切換回vim
c. 在vim中執行shell命令(不切換到shell)
:!command 在執行的命令前加上!,如!ls ,!ls -a
: r !command 將command命令的執行結果插入到文字當前行的下一行
: 3 !command 將文字中第三行的內容輸入到命令command中進行處理,並將第三行的內容替換為命令的執行結果
:1,3 !command 將文字中第一行到第三行的內容輸入到命令command中進行處理,並將第一行到第三行的內容替換為命令的執行結果
: 3 w !command 將文字中第三行的內容輸入到命令command中進行處理,不改變當前編輯檔案的內容.
:1,3 w !command 將文字中第一行到第三行的內容輸入到命令command中進行處理,不改變當前編輯檔案的內容
vim多檔案編輯
總想寫點東西,以證明自己的存在給將來。1 screen a 通過ports安裝screen b screen c vi file1.c d ctrl a c 表示同時按住ctrl和a,鬆開後再單擊c,以下同 新建乙個視窗 e vi file2.c f 游標移動到起始點 g ctrl a 進入copy...
Vim多檔案編輯
1.多檔案編輯 使用vim編輯多個檔案進入vim前使用的引數就是多個檔案 命令列模式下,預設進入第乙個檔案 例如 vim 1.txt 2.txt按 enter 進入1.txt檔案進行編輯,如果切換到2.txt,可以使用 n 進入到2.txt 在2.txt檔案中要 切換到1.txt的命令 n 進入vi...
Vim 同視窗多檔案編輯
一 如果在終端中開沒有開啟vim,可以 橫向分割顯示 vim o filename1 filename2 縱向分割顯示 vim o filename1 filename2 如果開啟時未加引數 o,split vsplit 二 如果已經用vim開啟了乙個檔案,想要在視窗中同時再開啟另乙個檔案 橫向分割...