如何使用Vim编辑器编辑多个文件
有时,我们会发现自己在我们想要在多个文件中进行更改的情况,或者我们可能希望将一个文件的内容复制到另一个文件。
如果我们在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