linux使用vim同时打开文件,学习使用vim编辑器同时编辑多个文件

1048c15e2bb3dead93e9b01debd42e88.png

有时候,您可能需要修改多个文件,或要将一个文件的内容复制到另一个文件中。在图形用户界面中,您可以在任何图形文本编辑器(如 gedit)中打开文件,并使用CTRL + C和CTRL + V复制和粘贴内容。在命令行模式下,您不能使用这种编辑器。不过别担心,只要有vim编辑器就有办法。在本教程中,我们将学习使用vim编辑器同时编辑多个文件。相信我,很有意思哒。

安装 Vim

Vim 编辑器可在大多数 Linux 发行版的官方软件仓库中找到,所以您可以用默认的软件包管理器来安装它。例如,在 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 编辑器同时编辑多个文件

现在让我们谈谈正事,我们可以用两种方法做到这一点。

方法一

有两个文件,即 file1.txt 和 file2.txt,带有一堆随机单词:

$ cat file1.txt

ostechnix

open source

technology

linux

unix

$ cat file2.txt

line1

line2

line3

line4

line5

现在,让我们同时编辑这两个文件。请运行:

$ vim file1.txt file2.txt

Vim 将按顺序显示文件的内容。首先显示第一个文件的内容,然后显示第二个文件,依此类推。

a96c897155d2c58e391b9927169860cb.png

- 在文件中切换

要移至下一个文件,请键入:

:n

a3ed7e9b3931c827d05536bf029b5bf8.png

要返回到前一个文件,请键入:

:N

如果有任何未保存的更改,Vim 将不允许您移动到下一个文件。要保存当前文件中的更改,请键入:

ZZ

请注意,是两个大写字母 ZZ(SHIFT + zz)。

要放弃更改并移至上一个文件,请键入:

:N!

要查看当前正在编辑的文件,请键入:

:buffers

e7b82303f57c94c2570f099bf22db4bd.png

您将在底部看到加载文件的列表。

1f1a44827cfb497d0828d31b7e3f020e.png

要切换到下一个文件,请输入:buffer,后跟缓冲区编号。例如,要切换到第一个文件,请键入:

:buffer 1

a361961554ba7a887fe4f1bbf88521f4.png

- 打开其他文件进行编辑

目前我们正在编辑两个文件,即file1.txt和file2.txt。我想打开另一个名为file3.txt的文件进行编辑。

您会怎么做?这很容易。只需键入:e,然后输入如下所示的文件名即可:

:e file3.txt

d4dfcd589bdb23d9876b292e05fdb560.png

现在你可以编辑file3.txt了。

要查看当前正在编辑的文件数量,请键入:

:buffers

38fbf5470800839248ec65f0dc8188a2.png

请注意,对于使用:e打开的文件,您无法使用:n或:N进行切换。要切换到另一个文件,请输入:buffer,然后输入文件缓冲区编号。

- 将一个文件的内容复制到另一个文件中

您已经知道了如何同时打开和编辑多个文件。有时,您可能想要将一个文件的内容复制到另一个文件中。这也是可以做到的。切换到您选择的文件,例如,假设您想将file1.txt的内容复制到file2.txt中:

首先,请切换到file1.txt:

:buffer 1

将光标移动至在想要复制的行的前面,并键入yy 以抽出(复制)该行。然后,移至 file2.txt:

:buffer 2

将光标移至要从 file1.txt 粘贴复制行的位置,然后键入 p。例如,您想要将复制的行粘贴到 line2 和 line3 之间,请将鼠标光标置于行前并键入 p。

输出示例:

line1

line2

ostechnix

line3

line4

line5

22bf87b009264dd0e402a5b3a16493b6.png

要保存当前文件中所做的更改,请键入:

ZZ

再次提醒,是两个大写字母 ZZ(SHIFT + z)。

保存所有文件的更改并退出 vim 编辑器,键入:

:wq

同样,您可以将任何文件的任何行复制到其他文件中。

- 将整个文件内容复制到另一个文件中

我们知道如何复制一行,那么整个文件的内容呢?也是可以的。比如说,您要将 file1.txt 的全部内容复制到 file2.txt 中。

先打开 file2.txt:

$ vim file2.txt

如果文件已经加载,您可以通过输入以下命令切换到 file2.txt:

:buffer 2

将光标移动到您想要粘贴 file1.txt 的内容的位置。我想在 file2.txt 的第 5 行之后粘贴 file1.txt的内容,所以我将光标移动到第 5 行。然后,键入以下命令并按回车键:

:r file1.txt

c8c8941270ba735d71f5fc3d5ab34ad5.png

这里,r代表 “read”。

现在您会看到file1.txt的内容被粘贴在file2.txt的第 5 行之后。

line1

line2

line3

line4

line5

ostechnix

open source

technology

linux

unix

e1bb6af27a480b08e3a1a306a2ff681d.png

要保存当前文件中的更改,请键入:

ZZ

要保存所有文件的所有更改并退出 vim 编辑器,请输入:

:wq

方法二

另一种同时打开多个文件的方法是使用 -o 或 -O 标志。

要在水平窗口中打开多个文件,请运行:

$ vim -o file1.txt file2.txt

52dd4dcba414e9fb06df6c920b2f031d.png

要在窗口之间切换,请按CTRL-w w(即按CTRL + w并再次按w)。或者,您可以使用以下快捷方式在窗口之间移动:

CTRL-w k– 上面的窗口

CTRL-w j– 下面的窗口

要在垂直窗口中打开多个文件,请运行:

$ vim -O file1.txt file2.txt file3.txt

b999e75e614ff92fde6273623da89334.png

要在窗口之间切换,请按CTRL-w w(即按CTRL + w并再次按w)。或者,使用以下快捷方式在窗口之间移动:

CTRL-w l– 左面的窗口

CTRL-w h– 右面的窗口

其他的一切都与方法一的描述相同。

例如,要列出当前加载的文件,请运行:

:buffers

在文件之间切换:

:buffer 1

打开其他文件,请键入:

:e file3.txt

将文件的全部内容复制到另一个文件中:

:r file1.txt

方法二的唯一区别是,只要您使用 ZZ 保存对当前文件的更改,文件将自动关闭。然后,您需要依次键入 :wq 来关闭文件。但是,如果您按照方法一进行操作,输入 :wq 时,所有更改将保存在所有文件中,并且所有文件将立即关闭。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值