vim 多檔案編輯(偶的linux筆記)

2021-06-20 08:36:55 字數 2498 閱讀 9023

在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開啟了乙個檔案,想要在視窗中同時再開啟另乙個檔案 橫向分割...