
前段时间跟大家探讨了 Vim 的颜色方案的话题,取得了不错的反响,大家可以点击以下链接回顾那篇文章:
今天我们来介绍 Vim 的分屏功能。
为什么需要分屏功能?其实需求场合有很多。比如,我现在屏幕很大,但我们的代码一般是左对齐,右边很空,这样我们就可以通过分屏来充分利用右边的屏幕。再如,我现在想同时查看多个文档,除了打开多个终端外,我们还可以通过分屏来达到我们的目的。
当然类似的场合还有很多,只要我们充分挖掘,肯定能挖掘出更多需求。
下面我们就来详细介绍 Vim 的分屏操作。
分屏功能基本操作
首先我们随便打开一个代码文件。为了方便演示,代码长度越长越好。
vim test.c
现在让我们将界面分成左右两部分。首先我们按 ctrl+w ,紧接着按 v 。这样操作之后,屏幕就一分为二了,如下图示:

如果我们想要三等分怎么操作?很简单,在上面的基础之上,我们再次执行一遍上面的操作,屏幕就三等分了。

如果你觉得这样操作太麻烦,我们还可以通过在末行模式执行以下命令达到同样的效果:
:vsplit


既然是命令,那就肯定有缩写:
:vsp
简直简单到离谱...来点有水平的~让我们从头开始,这次我们将屏幕进行横向分割。首先我们在末行模式下运行以下命令:
:split


同样的,我们也有缩写命令:
:sp
这个功能也可通过键盘组合键实现。对于水平分割来讲,先按 ctrl + w ,然后按 s 。同样,所有这些字母都是小写的,并且是英文输入状态。

分屏之间切换
如前文所言,分屏在很多场景下非常有用,但是,你如果不能从一个分屏切换到另一个分屏,那这种拆分视图就完全没意义了。下面让我给大家展示如何从一个分屏切换另一个分屏。
在这里,我设置了同一文件的4个分割视图。

刚开始时,光标位于第一个分屏。现在,假如我们要切换到右侧分屏,我们需要先按 ctrl + w ,然后按 l 。



同样地,假如我们要切换到左侧窗口,需要先按 ctrl + w ,然后按 h 。


如果你是进行横向分割屏幕的,那么就只能上下移动光标。要切换到上面的分屏,需要先按 ctrl + w ,然后按 k 。


同样地,如果想要切换到下面的分屏,那么就需要先按 ctrl + w,然后按 j 。

在不同分屏下进行编辑
到此为止,我相信大家已经学会了怎么进行分屏操作了。那分完屏,我们怎么在这些分屏下进行文本编辑呢?其实,每个分屏都可以视为一个完整的 Vim 窗口,我们平常怎么编辑的,就怎样去编辑文档。

复制及粘贴操作
与未分屏是基本无差的,大家可以在从一个分屏里复制一段文本,再切换到另一个分屏进行粘贴。操作都是一样的,只是需要在不同分屏里切换而已。

改变分屏尺寸
默认情况下,Vim 是按等分进行分屏操作的。如果我们想最大化/最小化某个分屏,要如何操作?
如果要将当前窗口加宽到最大尺寸,需要先按 ctrl + w ,然后按 |(注意:不是小写 L ,是与或非的那个与 | )。
如果你想把当前窗口高度加高到最大尺寸,那么需要使用 ctrl + w ,然后使用 _ 。
那如果想要重置所有分割窗口的大小,那么使用 ctrl+w ,然后按 = 。
默认情况下,Vim 在进行分屏操作时,每个分屏是等宽或等高的。如果要自定义分屏的宽度,大家可以使用以下结构:
:<width> vsp
同样地,对于水平分割而言,可以使用类似结构自定义高度:
:<height> sp
在同一个 Vim 窗口下打开多个不同文件
目前为止,所有的 Vim 分屏都是同一个文件的副本,但在很多情况下,我们需要打开多个不同的文件。我们可以将 Vim 窗口进行分屏,再在不同的分屏里打开不同的文件。
如何在 Vim 中打开一个新文件?我们可以使用以下命令:
:e<path_to_file>/filename.extension
例如,我们想要在一个全新的 Vim 实例中打开 vimrc,我们可以使用以下命令:
:e~/.vimrc
打开 vimrc 之后,我们想要将屏幕水平切分并打开一个新文件,可以使用以下命令:
:sp<file_path>
而对于垂直分割屏幕,使用的也是类似的结构:
:vsp<file_path>
小结
Vim 分屏讲到这里就要跟大家告一段落了。这种操作还是比较有趣,并且十分实用。
本文介绍了 Vim 分屏的一些基本操作及编辑方法,合理利用这个功能可以使我们更加高效使用电脑屏幕,提高我们的效率。
-----------------
我是良许,世界500强外企 Linux 开发工程师,专业生产 Linux 干货。欢迎关注我的公众号「良许Linux」,里面分享了 Linux入门、基础、进阶 等系列教程,同时也有 Git、Vim、开源项目 等技术干货。公众号后台回复「1024」获取最新最全的技术资料,回复「入群」进入高手如云技术交流群。

网友评论