学习使用vim编辑器同时编辑多个文件

有时候,您可能需要修改多个文件,或要将一个文件的内容复制到另一个文件中。在图形用户界面中,您可以在任何图形文本编辑器(如 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 将按顺序显示文件的内容。首先显示第一个文件的内容,然后显示第二个文件,依此类推。
- 在文件中切换
要移至下一个文件,请键入:
:n
要返回到前一个文件,请键入:
:n
如果有任何未保存的更改,vim 将不允许您移动到下一个文件。要保存当前文件中的更改,请键入:
zz
请注意,是两个大写字母 zz(shift + zz)。
要放弃更改并移至上一个文件,请键入:
:n!
要查看当前正在编辑的文件,请键入:
:buffers
您将在底部看到加载文件的列表。
要切换到下一个文件,请输入:buffer,后跟缓冲区编号。例如,要切换到第一个文件,请键入:
:buffer 1
- 打开其他文件进行编辑
目前我们正在编辑两个文件,即file1.txt和file2.txt。我想打开另一个名为file3.txt的文件进行编辑。
您会怎么做?这很容易。只需键入:e,然后输入如下所示的文件名即可:
:e file3.txt
现在你可以编辑file3.txt了。
要查看当前正在编辑的文件数量,请键入:
:buffers
请注意,对于使用: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
要保存当前文件中所做的更改,请键入:
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
这里,r代表 “read”。
现在您会看到file1.txt的内容被粘贴在file2.txt的第 5 行之后。
line1
line2
line3
line4
line5
ostechnix
open source
technology
linux
unix
要保存当前文件中的更改,请键入:
zz
要保存所有文件的所有更改并退出 vim 编辑器,请输入:
:wq
方法二
另一种同时打开多个文件的方法是使用 -o 或 -o 标志。
要在水平窗口中打开多个文件,请运行:
$ vim -o file1.txt file2.txt
要在窗口之间切换,请按ctrl-w w(即按ctrl + w并再次按w)。或者,您可以使用以下快捷方式在窗口之间移动:
ctrl-w k– 上面的窗口
ctrl-w j– 下面的窗口
要在垂直窗口中打开多个文件,请运行:
$ vim -o file1.txt file2.txt file3.txt
要在窗口之间切换,请按ctrl-w w(即按ctrl + w并再次按w)。或者,使用以下快捷方式在窗口之间移动:
ctrl-w l– 左面的窗口
ctrl-w h– 右面的窗口
其他的一切都与方法一的描述相同。
例如,要列出当前加载的文件,请运行:
:buffers
在文件之间切换:
:buffer 1
打开其他文件,请键入:
:e file3.txt
将文件的全部内容复制到另一个文件中:
:r file1.txt
方法二的唯一区别是,只要您使用 zz 保存对当前文件的更改,文件将自动关闭。然后,您需要依次键入 :wq 来关闭文件。但是,如果您按照方法一进行操作,输入 :wq 时,所有更改将保存在所有文件中,并且所有文件将立即关闭。

海信布局激光电视掌握未来彩电产业主动权
超牛的MOS管驱动电路分享
直流电阻检测仪、三相直流电阻测试仪
高空间分辨率高可见度的太赫兹光谱成像研究
线路放大电路原理图解
学习使用vim编辑器同时编辑多个文件
集成灶的好处是什么
5G时代即将到来,智能手机行业将进入一个全新时代
英特尔专注研究人工智能能否用热成像技术识别人脸
联发科发布天玑系列5G芯片—天玑700 7nm工艺八核 CPU 架构
FRAM如何保障新能源汽车电子系统的可靠性?
物联网和互联网之间的区别是怎样的
美容仪的设计适用于面部护理、连颈部肌肤护理
RFID电子标签面临哪一些安全问题
年底盘点三星Gear VR前五位最受关注的作品
影响工业连接器的环境因素
MAX16833高压高亮度LED驱动器的拓扑结构和设计过程
三星Tab S7系列平板渲染图曝光
扬尘污染容易造成的危害,扬尘污染监控系统解决方案
虹科首创冻干专用无线温度验证系统TrackSense LyoPro