美文网首页初见Linux程序员
13-6 编辑多个文件和保存

13-6 编辑多个文件和保存

作者: 見贤思齊_ | 来源:发表于2020-08-16 20:56 被阅读0次

    八、编辑多个文件(准)

    用户经常遇到需要同时编辑多个文件的情况。可能是需要对多个文件作出修改,或者是拷贝文件的部分内容到另一个文件

    用户可以通过在命令行具体指定多个文件的方式使 vi 打开多个文件

    vi file1 file2...

    现在退出所处的 vi 会话,并创建一个用于编辑的新文件。

    输入:wq来退出 vi 并保存做出的修改

    接下来,使用 ls 命令的部分输出在主目录创建一个用于实验的新文件。

    ls -l /usr/bin > ls-output.txt
    

    现在就用 vi 同时编辑旧文件和新文件。

    vi foo.txt ls-output.txt
    

    vi 启动后,屏幕显示内容如下所示:

    vi同时编辑多个文件.png

    1.切换文件(准)

    (1):n命令

    ① 是什么?

    使用以下 ex 命令来从一个文件切换到下一个文件

    ② 怎么做?
    Ⅰ.语法格式

    :n

    输入后别忘了按 Enter 键。

    (2):N命令

    ① 是什么?

    ex 命令用来切换回上一个文件

    ② 怎么做?
    Ⅰ.语法格式

    :N

    输入后别忘了按 Enter 键。

    (3):n和:N切换时注意事项

    当用户从一个文件切换到另一个的时候,vi 要求用户必须先保存对当前文件做出的修改才能切换到其它文件

    若要放弃对文件的修改,并使 vi 强制切换到另一个文件,可在命令后面加感叹号

    (4):buffers命令

    除了以上描述的切换方法,vim(和一些版本的 vi)还提供一些 ex 命令让用户可以更轻松地编辑多个文本。

    用户可使用 :buffers 命令来查看正在编辑的文件列表

    ① 怎么做?

    :buffers

    buffers命令查看正在编辑的文件列表.png

    (5):buffer 文件编号

    通过文件编号进行切换。

    ① 怎么做?

    输入:buffer加文件(buffer)编号可切换到另一个文件(buffer)。

    Ⅰ.示例

    如从文件1(foo.txt) 切换到 文件2(ls-output.txt),用户应当输入如下命令。

    :buffer 2
    ​
    # 现在屏幕展示的就是 文件2 的内容。
    
    buffer命令切换文件示例.png

    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
    ​
    # 查看正在编辑的文件列表。
    
    buffers命令查看正在编辑的文件列表.png
    ② 注意

    使用 :e 载入的文件不会响应 :n:N 命令,而需使用 :buffer 加文件编号 来切换文件

    3.文件之间的内容复制(准)

    (1)怎么做?

    用户在编辑多个文件的过程中,有时会需要将一个文件中的一部分复制到另一个文件中

    使用之前使用过的 复制和粘贴命令 即可完成此功能,示例如下:

    ① 示例

    首先,在载入的两个文件中,先切换到文件1(foo.txt)。

    :buffer 1
    

    此时屏幕显示如下:(图片取自之前,因为效果是一样的,不再另行截图)

    vi同时编辑多个文件.png

    接下来,将光标移动到文件的第一行并输入 yy(复制当前行) 命令来复制第一行。

    输入如下命令来切换到文件2(ls-output.txt)。

    :buffer 2
    

    现在屏幕将会展示一份文件列表,如下所示(只显示一部分,图片取自之前,因为效果是一样的,不再另行截图):

    buffer命令切换文件示例.png

    将光标移动到文件的第一行并使用 p 命令将从文件1复制的内容粘贴到本文件中。结果如下:

    文件间内容复制示例.png

    4.插入整个文件

    用户还可以将一个文件完全插入到正在编辑的文件中

    (1):r命令

    ① 怎么做?

    命令 :r (是read的缩写)将指定的文件内容插入到光标的位置之前。(注意:是插入到光标之前)

    Ⅰ.语法格式

    :r 想插入的文件名

    Ⅱ.示例

    为了演示这项功能,先结束现有的 vi 会话并重启 vi 的同时只打开一个文件(ls-output.txt)。

    vi ls-output.txt
    

    屏幕将再次显示一份文件列表:

    buffer命令切换文件示例.png

    将光标移动到文件的第三行并输入如下 ex 命令:

    :r foo.txt
    ​
    # 通过 :r 命令 foo.txt 将被完全插入到 ls-output.txt 文件中。
    

    此时屏幕显示如下:

    r命令插入整个文件.png

    九、保存工作

    就像其它功能一样,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。

    相关文章

      网友评论

        本文标题:13-6 编辑多个文件和保存

        本文链接:https://www.haomeiwen.com/subject/xusxjktx.html