如何使用Vim編輯器編輯多個(gè)文件
有時(shí)候,您可能需要修改多個(gè)文件,或要將一個(gè)文件的內(nèi)容復(fù)制到另一個(gè)文件中。在圖形用戶界面中,您可以在任何圖形文本編輯器(如 gedit)中打開(kāi)文件,并使用 CTRL + C 和 CTRL + V 復(fù)制和粘貼內(nèi)容。在命令行模式下,您不能使用這種編輯器。不過(guò)別擔(dān)心,只要有 vim 編輯器就有辦法。在本教程中,我們將學(xué)習(xí)使用 vim 編輯器同時(shí)編輯多個(gè)文件。相信我,很有意思噠。
安裝 Vim
Vim 編輯器可在大多數(shù) Linux 發(fā)行版的官方軟件倉(cāng)庫(kù)中找到,所以您可以用默認(rèn)的軟件包管理器來(lái)安裝它。例如,在 Arch Linux 及其變體上,您可以使用如下命令:
$ sudo pacman -S vim
在 Debian 和 Ubuntu 上:
$ sudo apt-get install vim
在 RHEL 和 CentOS 上:
$ sudo yum install vim
在 Fedora 上:
$ sudo dnf install vim
在 openSUSE 上:
$ sudo zypper install vim
使用 Linux 的 Vim 編輯器同時(shí)編輯多個(gè)文件
現(xiàn)在讓我們談?wù)務(wù)?,我們可以用兩種方法做到這一點(diǎn)。
方法一
有兩個(gè)文件,即 file1.txt 和 file2.txt,帶有一堆隨機(jī)單詞:
$ cat file1.txtostechnixopen sourcetechnologylinuxunix$ cat file2.txtline1line2line3line4line5
現(xiàn)在,讓我們同時(shí)編輯這兩個(gè)文件。請(qǐng)運(yùn)行:
$ vim file1.txt file2.txt
Vim 將按順序顯示文件的內(nèi)容。首先顯示***個(gè)文件的內(nèi)容,然后顯示第二個(gè)文件,依此類(lèi)推。
在文件中切換
要移至下一個(gè)文件,請(qǐng)鍵入:
:n

要返回到前一個(gè)文件,請(qǐng)鍵入:
:N
如果有任何未保存的更改,Vim 將不允許您移動(dòng)到下一個(gè)文件。要保存當(dāng)前文件中的更改,請(qǐng)鍵入:
ZZ
請(qǐng)注意,是兩個(gè)大寫(xiě)字母 ZZ(SHIFT + zz)。
要放棄更改并移至上一個(gè)文件,請(qǐng)鍵入:
:N!
要查看當(dāng)前正在編輯的文件,請(qǐng)鍵入:
:buffers

您將在底部看到加載文件的列表。

要切換到下一個(gè)文件,請(qǐng)輸入 :buffer,后跟緩沖區(qū)編號(hào)。例如,要切換到***個(gè)文件,請(qǐng)鍵入:
:buffer 1

打開(kāi)其他文件進(jìn)行編輯
目前我們正在編輯兩個(gè)文件,即 file1.txt 和 file2.txt。我想打開(kāi)另一個(gè)名為 file3.txt 的文件進(jìn)行編輯。
您會(huì)怎么做?這很容易。只需鍵入 :e,然后輸入如下所示的文件名即可:
:e file3.txt

現(xiàn)在你可以編輯 file3.txt 了。
要查看當(dāng)前正在編輯的文件數(shù)量,請(qǐng)鍵入:
:buffers

請(qǐng)注意,對(duì)于使用 :e 打開(kāi)的文件,您無(wú)法使用 :n 或 :N 進(jìn)行切換。要切換到另一個(gè)文件,請(qǐng)輸入 :buffer,然后輸入文件緩沖區(qū)編號(hào)。
將一個(gè)文件的內(nèi)容復(fù)制到另一個(gè)文件中
您已經(jīng)知道了如何同時(shí)打開(kāi)和編輯多個(gè)文件。有時(shí),您可能想要將一個(gè)文件的內(nèi)容復(fù)制到另一個(gè)文件中。這也是可以做到的。切換到您選擇的文件,例如,假設(shè)您想將 file1.txt 的內(nèi)容復(fù)制到 file2.txt 中:
首先,請(qǐng)切換到 file1.txt:
:buffer 1
將光標(biāo)移動(dòng)至在想要復(fù)制的行的前面,并鍵入yy 以抽出(復(fù)制)該行。然后,移至 file2.txt:
:buffer 2
將光標(biāo)移至要從 file1.txt 粘貼復(fù)制行的位置,然后鍵入 p。例如,您想要將復(fù)制的行粘貼到 line2 和 line3 之間,請(qǐng)將鼠標(biāo)光標(biāo)置于行前并鍵入 p。
輸出示例:
line1line2ostechnixline3line4line5

要保存當(dāng)前文件中所做的更改,請(qǐng)鍵入:
ZZ
再次提醒,是兩個(gè)大寫(xiě)字母 ZZ(SHIFT + z)。
保存所有文件的更改并退出 vim 編輯器,鍵入:
:wq
同樣,您可以將任何文件的任何行復(fù)制到其他文件中。
將整個(gè)文件內(nèi)容復(fù)制到另一個(gè)文件中
我們知道如何復(fù)制一行,那么整個(gè)文件的內(nèi)容呢?也是可以的。比如說(shuō),您要將 file1.txt 的全部?jī)?nèi)容復(fù)制到 file2.txt 中。
先打開(kāi) file2.txt:
$ vim file2.txt
如果文件已經(jīng)加載,您可以通過(guò)輸入以下命令切換到 file2.txt:
:buffer 2
將光標(biāo)移動(dòng)到您想要粘貼 file1.txt 的內(nèi)容的位置。我想在 file2.txt 的第 5 行之后粘貼 file1.txt 的內(nèi)容,所以我將光標(biāo)移動(dòng)到第 5 行。然后,鍵入以下命令并按回車(chē)鍵:
:r file1.txt

這里,r 代表 “read”。
現(xiàn)在您會(huì)看到 file1.txt 的內(nèi)容被粘貼在 file2.txt 的第 5 行之后。
line1line2line3line4line5ostechnixopen sourcetechnologylinuxunix

要保存當(dāng)前文件中的更改,請(qǐng)鍵入:
ZZ
要保存所有文件的所有更改并退出 vim 編輯器,請(qǐng)輸入:
:wq
方法二
另一種同時(shí)打開(kāi)多個(gè)文件的方法是使用 -o 或 -O 標(biāo)志。
要在水平窗口中打開(kāi)多個(gè)文件,請(qǐng)運(yùn)行:
$ vim -o file1.txt file2.txt

要在窗口之間切換,請(qǐng)按 CTRL-w w(即按 CTRL + w 并再次按 w)?;蛘撸梢允褂靡韵驴旖莘绞皆诖翱谥g移動(dòng):
CTRL-w k– 上面的窗口CTRL-w j– 下面的窗口
要在垂直窗口中打開(kāi)多個(gè)文件,請(qǐng)運(yùn)行:
$ vim -O file1.txt file2.txt file3.txt

要在窗口之間切換,請(qǐng)按 CTRL-w w(即按 CTRL + w 并再次按 w)?;蛘?,使用以下快捷方式在窗口之間移動(dòng):
CTRL-w l– 左面的窗口CTRL-w h– 右面的窗口
其他的一切都與方法一的描述相同。
例如,要列出當(dāng)前加載的文件,請(qǐng)運(yùn)行:
:buffers
在文件之間切換:
:buffer 1
打開(kāi)其他文件,請(qǐng)鍵入:
:e file3.txt
將文件的全部?jī)?nèi)容復(fù)制到另一個(gè)文件中:
:r file1.txt
方法二的***區(qū)別是,只要您使用 ZZ 保存對(duì)當(dāng)前文件的更改,文件將自動(dòng)關(guān)閉。然后,您需要依次鍵入 :wq 來(lái)關(guān)閉文件。但是,如果您按照方法一進(jìn)行操作,輸入 :wq 時(shí),所有更改將保存在所有文件中,并且所有文件將立即關(guān)閉。
有關(guān)更多詳細(xì)信息,請(qǐng)參閱手冊(cè)頁(yè)。
$ man vim
建議閱讀
您現(xiàn)在掌握了如何在 Linux 中使用 vim 編輯器編輯多個(gè)文件。正如您所見(jiàn),編輯多個(gè)文件并不難。Vim 編輯器還有更強(qiáng)大的功能。我們接下來(lái)會(huì)提供更多關(guān)于 Vim 編輯器的內(nèi)容。



























