如何使用Vim编辑器编辑多个文件

时间:2020-03-21 11:48:09  来源:igfitidea点击:

有时,我们会发现自己在我们想要在多个文件中进行更改的情况,或者我们可能希望将一个文件的内容复制到另一个文件。
如果我们在GUI模式下,我们可以简单地在任何图形文本编辑器中打开文件,如GEDIT,并使用Ctrl + C和Ctrl + V来复制/粘贴内容。
在CLI模式下,我们无法使用此类编辑器。
不用担心!其中有Vim编辑器,有办法!在本教程中,我们将学会使用Vim编辑器同时编辑多个文件。
相信我,这是非常有趣的阅读。

在Linux上安装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编辑器一次编辑多个文件

让我们现在达到业务。
我们可以用两种方法做到这一点。

方法1

我有两个文件,即file1.txt和file2.txt,带有一堆随机单词。
让我们看看他们。

$cat file1.txt 
theitroad
open source
technology
linux
unix
$cat file2.txt 
line1
line2
line3
line4
line5

现在,让我们一次使用VIM编辑器编辑这两个文件。
为此,运行:

$vim file1.txt file2.txt

Vim将按顺序显示文件的内容。
第一个文件的内容将首先显示,然后是第二个文件等。

在文件之间切换

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

:n

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

:N

其中n是CAPTIAL(类型SHIFT + N)。

开始编辑文件作为与Vim编辑器的方式进行编辑。
按"I"切换到交互式模式,并根据喜好修改内容。
完成后,按ESC返回正常模式。

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

ZZ

请注意,它是双重大写字母ZZ(Shift + ZZ)。

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

:N!

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

:buffers

我们将看到底部的加载文件列表。

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

:buffer 1

要不就

:b 1

只需记住这些命令在缓冲区之间轻松切换:

:bf            # Go to first file.
:bl            # Go to last file
:bn            # Go to next file.
:bp            # Go to previous file.
:b number  # Go to nth file (E.g :b 2)
:bw            # Close current file.

打开其他文件进行编辑

我们目前正在编辑两个文件,即file1.txt,file2.txt。
我们可能希望打开另一个名为file3.txt的文件进行编辑。
你会怎么做?
这很简单!只需键入:e,然后是下面的文件名。

:e file3.txt

现在我们可以编辑File3.txt。

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

:buffers

请注意,我们无法在打开的文件之间切换:使用:E:n或者:n。
切换到另一个文件,键入:缓冲区后跟文件缓冲区号。

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

我们知道如何同时打开和编辑多个文件。
有时,我们可能希望将一个文件的内容复制到另一个文件中。
也是可能的。
切换到我们选择的文件。
例如,让我们说要将File1.txt的内容复制到File2.txt中。

为此,请先切换到file1.txt:

:buffer 1

将Move光标放在前面的一行中,想要复制和键入YY以yank(复制)行。
然后,移动到file2.txt:

:buffer 2

将鼠标光标放在要粘贴到File1.txt的复制行和类型p的地方。
例如,我们希望在Line2和Line3之间粘贴复制的行。
为此,请将鼠标光标放在线路之前,然后键入p。

示例输出:

line1
line2
theitroad
line3
line4
line5

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

ZZ

请注意,这是双重资本ZZ(Shift + Z)。

保存所有文件的更改并退出VIM编辑器。
类型:

:wq

同样,我们可以将任何文件从任何文件复制到其他文件。

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

我们知道如何复制单行。
整个文件内容怎么样?
这也是可能的。
让我们说,我们想将File1.txt的全部内容复制到File2.txt中。

为此,请先打开file2.txt:

$vim file2.txt

如果已加载文件,则可以通过键入:

:buffer 2

将光标移动到我们想要复制File1.txt内容的地方。
我想在File2.txt中的line5后复制file1.txt的内容,所以我将光标移动到第5行。
然后,键入以下命令并按Enter键:

:r file1.txt

其中R表示读取。

现在,我们将看到File1.txt的内容在File2.txt中的Line5之后粘贴。

line1
line2
line3
line4
line5
theitroad
open source
technology
linux
unix

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

ZZ

要保存所有已加载的文件和退出Vim编辑器的所有更改,请键入:

:wq

方法2.

通过使用-o或者-o标志,另一个打开多个文件的方法。

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

$vim -o file1.txt file2.txt

要在Windows之间切换,请按Ctrl-W W(即按Ctrl + W且再次按W)。
或者,使用以下快捷方式在Windows之间移动。

  • Ctrl-W k - 顶窗
  • Ctrl-W J - 底部窗口

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

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

要在Windows之间切换,请按Ctrl-W W(即按Ctrl + W且再次按W)。
或者,使用以下快捷方式在Windows之间移动。

  • ctrl-w l - 左窗口
  • Ctrl-W H - 右窗口

其他一切都与方法1中所述相同。

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

:buffers

要在文件之间切换:

:buffer 1

要打开添加文件,请键入:

:e file3.txt

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

:r file1.txt

方法2中唯一的区别是使用ZZ保存当前文件中的更改,该文件将自动关闭。
此外,我们需要通过键入:wq逐个关闭文件。
但是,如果我们遵循该方法1,则在键入时:WQ所有更改都将保存在所有文件中,并且所有文件都将立即关闭。

有关更多详细信息,请参阅Man页面。

$man vim