有时候,您可能需要修改多个文件,或要将一个文件的内容复制到另一个文件中。在图形用户界面中,您可以在任何图形文本编辑器(如 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时,所有更改将保存在所有文件中,并且所有文件将立即关闭。

有关更多详细信息,请参阅手册页。

$man vim

建议阅读

您现在掌握了如何在 Linux 中使用 vim 编辑器编辑多个文件。正如您所见,编辑多个文件并不难。Vim 编辑器还有更强大的功能。我们接下来会提供更多关于 Vim 编辑器的内容。

再见!

本文由 LCTT 原创编译,Linux中国 荣誉推出

用Linux同时编辑两个文档,如何使用Vim编辑多个文件相关推荐

  1. vue+ts在线文档编辑(类腾讯文档)多人在线编辑-自定义页眉和分页打印(三)

    目录 前言 一.自定义页眉内容 二.分页文档打印 1.加入分页符 2.打印方法 3.打印模块完整代码 总结 前言 随着在线办公场景越来越多,同时需要各式各样办公软件,在开发时就用得到在线文档来内容指定 ...

  2. windows和linux系统之间的txt文档兼容问题

    windows和linux系统之间的txt文档兼容问题 在给公司做自动化文件同步的测试时,出现的这个问题,因为本地开发的从外网拿同步路径列表的脚本文件没有svn上传.就在windows机器上生成了文件 ...

  3. 布置到linux的文件,免费的Office套件,如何在Linux中部署OnlyOffice桌面文档编辑器...

    原标题:免费的Office套件,如何在Linux中部署OnlyOffice桌面文档编辑器 如果您是Ubuntu用户(或者一般的Linux用户),那么您很可能将LibreOffice作为默认的offic ...

  4. Django+Linux+Uwsgi+Nginx项目部署文档

    Django+Linux+Uwsgi+Nginx项目部署文档 WSGI 在生产环境中使用WSGI作为python web的服务器 WSGI:全拼为Python Web服务器网关接口,Python We ...

  5. linux 如何查看终端格式,你应该还不知道,Linux终端下的 Markdown 文档查看器

    原标题:你应该还不知道,Linux终端下的 Markdown 文档查看器 现在,Markdown 差不多已经成为技术文档的标准.它可以实现技术文档的快捷写作,以及输出发布.同样都是标记语言,但Mark ...

  6. 比较两个文档的相似程度_您的文档对读者的友好程度如何?

    比较两个文档的相似程度 有成就的技术作家所要做的首要任务是为观众写作. 这个任务听起来很简单,但是当我想到世界各地的人们时,我想知道:他们能阅读我们的文档吗? 可读性已经研究了多年,接下来是对研究成果 ...

  7. word文档被锁定无法编辑的解决方法

    发现问题 今天下载课表, 发现其竟然是两页的word文档, 于是想着转变成单页以方便查阅和打印, 因为第二页只有几行字, 所以我想着调整页边距或者纸张大小应该就可以实现, 结果令人意外的是这个文档竟然 ...

  8. VScode编辑同步Markdown文档到印象笔记

    VScode编辑同步Markdown文档到印象笔记 第一步 下载VSCode 到Visual Studio Code官网下载VSCode,并安装 第二步 安装VScode相关插件 需要两个插件: ev ...

  9. JAVA实现在线多人编辑文档,PageOffice---实现多人同时编辑一份文档

    1. 功能介绍 使用程序控制不同用户打开文件后,只能编辑Word文档中属于自己的区域.用此方法开发的话,支持多个人同时打开一个文件编辑各自的区域而互不影响的. 2. 如何实现多人同时编辑一份文档 在W ...

最新文章

  1. 超实用总结:AI实践者需要用到的10个深度学习方法
  2. 2021 倒计时,编程日历倒计时,但伟大与经典历久弥新
  3. eclipse tomcat内存设置
  4. 深度学习(二十五)基于Mutil-Scale CNN的图片语义分割、法向量估计-ICCV 2015
  5. asp和php数据库怎么区分,asp与php的数据库有哪些区别
  6. 在OSI参考模型中,当两台计算机进行文件传输时,为防止中间出现网络故障而重传整个文件的情况,可通过在文件中插入同步点来解决,这个动作发生在( )
  7. gview java_java - 如何在干净模式下运行eclipse? 如果我们这样做会发生什么?
  8. [问题]魔兽双击地面回到选中的单位
  9. ubuntu php 解析,ubuntu运行后台php服务详解
  10. 人的烦恼大部分来自于没钱
  11. Golang 接口相等比较注意要点
  12. 如何生成草料二维码在手机查看微信效果
  13. LNMP一键安装包+Thinkphp搭建基于pathinfo模式的路由(可以去除url中的.php)
  14. 动态内存分配(c++)
  15. java + concat_Java中concat()方法和加号(+)运算符之间的区别
  16. QT软件开发:基于libVLC内核设计视频播放器
  17. 英语后置定语语法归纳
  18. win10微软商店/账号登录一直转圈
  19. Android studio实现多个按钮跳转多个页面
  20. 春风十里,美拉德在人人投等你!

热门文章

  1. 【zookeeper】zookeeper shell 删除路径 卡死
  2. 启动Spark出现Operation category READ is not supported in state standby
  3. 【Siddhi 5】Siddhi 5 源码编译
  4. Eclipse报错:this compilation unit is not on the build path of a java project
  5. 【flume】flume的安装配置理解
  6. Mybatis源码解析:sql参数处理(2)
  7. 一文搞懂注册中心 zookeeper 和 eureka 中的CP和 AP
  8. 关于PLSQL Developer报动态执行表不可访问,本会话的自动统计被禁止错的解决方法 .
  9. H264所采用的指数格伦布熵编码算法原理及应用
  10. OkHttp和Volley对比