记:vim多文件操作

背景

在linux无界面操作时如何用vim进行多文件的操作如文件间拷贝操作等。

vim在linux上的安装

本人用的centos,其命令如下:

sudo yum install vim

用vim同时编辑多个文件

方法1

新建两个txt文件file1.txt和file2.txt,内容随意。然后运行下面的命令:
vim file1.txt file2.txt

vim file1.txt file2.txt

多文件打开和切换

:n #切换到下一个文件
:N #切换到上一个文件

note:vim不允许存在未保存更改的情况下切换到下一个文件

ZZ #保存文件

浏览当前正在编辑的文件

:buffers

使用buffer命令切换到某一文件

buffer n (b n) #n为使用buffers命令后文件的序号

例如切换到第一个文件可使用命令:

:buffer 1(b 1)

在buffer中常用一些命令简单的实现文件切换

命令 含义
:bf 切换到第一个文件
:bl 切换到最后一个文件
:bn 切换到下一个文件
:bp 切换到上一个文件
:b n 切换到第n个文件
:bw 关闭当前文件

在已经当开文件的情况下,额外添加一个文件用于编辑可用命令:

:e file3.txt #file3.txt为添加用于编辑的文件

用buffers命令可以看到file3文件已经被打开,这里有一点需要注意一下,这种情况下不能用 :e 命令切换到file3,如果要切换文件可用 buffe n 命令

复制一个文件的内容到其他文件

单行复制

下面是将file1的内容复制到当前文件的步骤

  1. 切换到第一个文件

buffer 1

  1. 使用命令 yy 复制某一行
  2. 切换到第二个文件

buffer 2

  1. 光标定位到粘贴位置,使用 p 命令完成粘贴
  2. 保存更改到当前文件: ZZ
  3. 保存所有文件的更改并退出: wq

整个文件内容复制

上面的步骤完成了将单行内容复制到其他文件中。如果需要将一个文件的全部内容复制到其他文件中,应该怎么办?

将文件1的内容复制并粘贴到文件2的第二行:

  1. 打开文件2

vim file2.txt
若file2已经打开,可以使用 buffer n 切换到file2

  1. 将光标移动到第五行:

:5(:5G)

  1. 执行命令:

r file1.txt
此时可以看到内容拷贝成功

  1. 保存当前文件的修改

ZZ

  1. 保存所有打开文件并退出

:wq

方法2

在打开文件时加入 -o 选项,文件内容以垂直分布在一个页面中

vim -o file1.txt file2.txt

切换两个文件使用命令 ctrl-w w
或者使用:
Ctrl-w k -顶层窗口
Ctrl-w j -底层窗口

文件内容以水平分布在一个页面中使用 -O选项
切换命令
Ctrl-w l -左窗口
Ctrl-w h -右窗口

其他操作同方法1

对比

方法2与方法1不同的是一旦使用 ZZ 来保存当前文件的改动时,会自动关闭该文件,同时需要一个文件一个文件的执行 :wq 命令;使用方法1时,执行一次 :wq 命令就可以保存所有文件的更改。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章