13-6 编辑多个文件和保存
八、编辑多个文件(准)
用户经常遇到需要同时编辑多个文件的情况。可能是需要对多个文件作出修改,或者是拷贝文件的部分内容到另一个文件。 用户可以通过在命令行具体指定多个文件的方式使 vi 打开多个文件。
vi file1 file2...
现在退出所处的 vi 会话,并创建一个用于编辑的新文件。 输入
:wq
来退出 vi 并保存做出的修改。 接下来,使用 ls 命令的部分输出在主目录创建一个用于实验的新文件。
ls -l /usr/bin > ls-output.txt
现在就用 vi 同时编辑旧文件和新文件。
vi foo.txt ls-output.txt
vi 启动后,屏幕显示内容如下所示:
1.切换文件(准)
(1):n命令
① 是什么?
使用以下 ex 命令来从一个文件切换到下一个文件。
② 怎么做?
Ⅰ.语法格式
:n
输入后别忘了按 Enter 键。
(2):N命令
① 是什么?
ex 命令用来切换回上一个文件。
② 怎么做?
Ⅰ.语法格式
:N
输入后别忘了按 Enter 键。
(3):n和:N切换时注意事项
当用户从一个文件切换到另一个的时候,vi 要求用户必须先保存对当前文件做出的修改才能切换到其它文件。 若要放弃对文件的修改,并使 vi 强制切换到另一个文件,可在命令后面加感叹号。
(4):buffers命令
除了以上描述的切换方法,vim(和一些版本的 vi)还提供一些 ex 命令让用户可以更轻松地编辑多个文本。 用户可使用 :buffers 命令来查看正在编辑的文件列表。
① 怎么做?
:buffers
(5):buffer 文件编号
通过文件编号进行切换。
① 怎么做?
输入
:buffer
加文件(buffer)编号可切换到另一个文件(buffer)。
Ⅰ.示例
如从文件1(foo.txt) 切换到 文件2(ls-output.txt),用户应当输入如下命令。
:buffer 2
# 现在屏幕展示的就是 文件2 的内容。
2.载入更多的文件(准)
我们也可以在现有的编辑会话中载入更多文件。 使用 ex 命令
:e
(edit的缩写)加文件名可以载入另一个文件。
(1):e命令
① 怎么做?
使用 ex 命令
:e
(edit的缩写)加文件名 可以在现有编辑会话中载入另一个文件。
Ⅰ.语法格式
:e 想载入的文件名
Ⅱ.示例
先退出现有的编辑会话并回到命令行模式。 重启 vi,并只打开一个文件1(foo.txt)。
vi foo.txt
添加一个文件(ls-output.txt)到编辑会话中,输入以下代码。
:e ls-output.txt
屏幕将显示第二个文件的内容,而第一个文件仍然处于编辑状态,可使用
:buffers
命令来证实。
:buffers
# 查看正在编辑的文件列表。
② 注意
使用 :e 载入的文件不会响应
:n
或:N
命令,而需使用:buffer
加文件编号 来切换文件。
3.文件之间的内容复制(准)
(1)怎么做?
用户在编辑多个文件的过程中,有时会需要将一个文件中的一部分复制到另一个文件中。 使用之前使用过的 复制和粘贴命令 即可完成此功能,示例如下:
① 示例
首先,在载入的两个文件中,先切换到文件1(foo.txt)。
:buffer 1
此时屏幕显示如下:(图片取自之前,因为效果是一样的,不再另行截图)
接下来,将光标移动到文件的第一行并输入
yy
(复制当前行) 命令来复制第一行。 输入如下命令来切换到文件2(ls-output.txt)。
:buffer 2
现在屏幕将会展示一份文件列表,如下所示(只显示一部分,图片取自之前,因为效果是一样的,不再另行截图):
将光标移动到文件的第一行并使用
p
命令将从文件1复制的内容粘贴到本文件中。结果如下:
4.插入整个文件
用户还可以将一个文件完全插入到正在编辑的文件中。
(1):r命令
① 怎么做?
命令
:r
(是read的缩写)将指定的文件内容插入到光标的位置之前。(注意:是插入到光标之前)
Ⅰ.语法格式
:r 想插入的文件名
Ⅱ.示例
为了演示这项功能,先结束现有的 vi 会话并重启 vi 的同时只打开一个文件(ls-output.txt)。
vi ls-output.txt
屏幕将再次显示一份文件列表:
将光标移动到文件的第三行并输入如下 ex 命令:
:r foo.txt
# 通过 :r 命令 foo.txt 将被完全插入到 ls-output.txt 文件中。
此时屏幕显示如下:
九、保存工作
就像其它功能一样,vi 提供了很多种方式来保存编辑过的文件。 前面的章节已经介绍过用于此功能的 ex 命令
:w
,但是还有一些其它可用方法。
1.ZZ
在命令模式下,输入
ZZ
将保存当前文档并退出 vi。
2.:wq
同样的, ex 命令
:wq
组合了:w
和:q
这两个命令的功能,能够保存文件并退出 vi。
3.:w加随意文件名-另存为
当命令
:w
指定一个随意的文件名时,命令的功能就类似于“ 另存为 ”。 例如,用户在编辑 foo.txt 的时候想要将其另存为 foo1.txt ,就可以输入如下内容:
:w foo1.txt
(1)注意
此命令在以新名称保存文件的同时,并不更改编辑中的原文件的名称。 当用户继续编辑时,编辑的还是 foo.txt 而不是 foo1.txt。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 聊聊RespCommand
- Python爬取网站图片
- PHP实现码云Gitee的WebHook密钥验证算法
- 带你用 Python 实现自动化群控设备
- Pyhon制作脚本提取日志数据
- 使用Safari或者Chrome远程调试IOS Safari中的页面
- cmake Tips
- 本体入门(一):本体构建 101
- 大数据获取案例:Python网络爬虫实例
- 【pyspark】parallelize和broadcast文件落盘问题(后续)
- 【Tbase开源版测评】基于PostgreSQL的国产开源数据库初体验
- 聊聊RedisToken
- 【Ceph RGW】Bucket Sharding的设置
- 每日手撕一道算法-1143.最长公共子序列
- 理解JavaScript 中的执行上下文和执行栈