《友情推荐,欢迎大家关注》

使用Vim同时打开和操作多个文件是一种常见的工作场景。本文介绍Vim如何在多个打开的文件中进行快速切换的几种Vim实用技巧。

一、Vim分割窗口

最直观的使用Vim同时操作多个文件的方式是采用Vim多窗口分割功能。

如果已经打开了Vim,可以在命令行模式下使用 :vsp new_file.txt 来新打开一个垂直分割的窗口,或使用 :sp new_file.txt 命令新打开一个水平分割的窗口。

vim split window

如果还没有启动Vim进程,可以在命令行下使用 vim -o2 foo.txt new_file.txt 以水平方向分割2个窗口的方式打开 foo.txt 和 new_file.txt 两个文件;也可以使用 vim -O2 foo.txt new_file.txt 以垂直方向分割2个窗口的方式打开 foo.txtnew_file.txt 文件。

关于Vim启动参数的更多介绍,参考14个Vim启动参数和启动方法详解

二、使用Vim文件缓冲区

Vim每打开一个文件就会创建一个对应的Vim文件缓冲区 (Vim file buffer)。Vim支持同时在多个缓冲区进行操作,缓冲区不仅包含了文件的内容,也记录了该文件的编辑状态等配置信息,包括激活、隐藏、上次编辑行数等。

Vim命令行模式下的命令 :ls:buffers 会列出所有被载入到内存中的缓冲区的列表,% 符号指明哪个缓冲区在当前窗口中可见。

通过 :bnext (缩写形式 :bn) 和 :bprev (缩写形式 :bp)命令可正向或反向遍历列表,Vim组合命令 <Ctrl ^> 可以在当前文件和轮换文件间快速切换。

:bfirst:blast 则分别用于跳转到Vim缓冲区列表的开头和结尾对应文件;而 :e new_file.txt 会在一个新的文件缓冲区打开名为 new_file.txt 的文件。

vim buffers

:b 是一个非常强大的Vim命令,它支持 tab 自动补齐。假设文件 foo.txt 是当前文件缓冲区列表中第两个文件,除了可以使用 :b 2 编辑该文件外,还可以使用 :b oo<Tab> 将文件名从 oo 自动补齐为 foo.txt 。感受到 :b 命令的强大了吧!

三、Vim标签页

Vim标签页(Vim 7引入的功能)是可以容纳一系列Vim窗口的容器,可通过Vim帮助命令 h: tabpage 查看官方为Vim标签页的介绍。

Vim命令行命令 :tabs 可以列出所有的标签页和它们包含的窗口,当前窗口用 > 表示,修改过的缓冲区用 + 表示。

Vim命令行模式下,使用命令 :tabnext (缩写形式 :tabn) 可以移动到下一个标签页;Vim普通模式下,使用命令 gt 同样可以移动到下一个标签页。

vim tabpage

关于Vim标签页切换、Vim标签页移动和标签页退出等命令,可以参考Vim教程网https://vimjc.com的文章:Vim标签页介绍及用标签页将窗口分组

四、Vim参数列表args

Vim参数列表记录了在启动时作为参数传递给 Vim 的文件列表,在Vim命令行模式下执行 :args 命令可以打印出当前参数列表的内容,可以用 :next:prev 命令遍历参数列表中的所有文件。

vim args

:argdo 命令可以在参数列表args中的每个文件上执行一条 Ex 命令(注意:不能是普通模式的命令)。:argdo 命令结合 :args 指定参数列表可以对任意个文件执行多种操作。

《女程序员说》

原创不易,希望能给小女子的公众号加个关注~