垂直或水平分割 Vim 工作区

当您熟悉 Vim 的基础知识并开始更深入地探索它时,您会发现新事物。

在终端中使用 Vim 时拆分屏幕等新功能。 不需要 tmux 或屏幕。 只需在 Vim 下进行,本机即可。

是的,Vim 允许您在活动工作区中进行多个水平或垂直拆分。

让我向您展示如何拆分 Vim 以及在拆分窗口之间导航所需的所有键盘快捷键。

创建拆分窗口

假设你在 Vim 中打开了一个文件。 现在您想将工作区拆分为多个窗口以提高工作效率。 让我们回顾一下如何在 Vim 中创建拆分窗口。

有两种方法可以分割 Vim 工作区 – 水平和/或垂直。

您可以根据哪个窗口有您的光标知道哪个窗口处于活动状态。

垂直拆分窗口

假设你在 Vim 中打开了一个文件,并且你想垂直分割屏幕。

要进行垂直拆分,请进入正常模式,然后运行以下命令:

:vsplit [file_path]

如果你指定一个文件路径,它将在新拆分的窗口中打开文件,否则,新拆分的窗口将打开相同的文件。

一个更短的命令 vsplitvs (您可以指定一个文件路径 vs 以及)。

作为创建垂直分割的另一种方法,您可以按 Ctrl + w 组合键,最后按字母“v“(v 表示垂直分割)。

水平拆分窗口

Vim 也允许你水平分割窗口。

要进行水平分割,请进入正常模式,然后运行以下命令:

:split [file_path]

如果你指定一个文件路径,它将在新拆分的窗口中打开文件,否则新拆分的窗口将打开同一个文件。

执行水平分割的更短的命令是使用 sp 命令。 它还接受文件路径。

如果您想知道是否存在任何用于创建水平拆分窗口的组合键,是的。 这是 ”Ctrl + w“然后按字母”s”。

关闭拆分窗口

有几种方法可以 close/退出活动的拆分窗口。

  • :q[uit] – close 当前窗口和缓冲区
  • :bd[elete] – 卸载当前缓冲区,然后 close 当前窗口
  • :on[ly] – close 所有其他窗口,但保持所有缓冲区打开
使用

考虑以下场景,我将 Vim 工作区分为四个象限。

以下是您可以执行的四个操作和组合键。

  • 移动到左侧的拆分窗口:按 Ctrl + w 并按下 H
  • 向下移动到拆分窗口:按 Ctrl + w 并按下 j
  • 向上移动到拆分窗口:按 Ctrl + w 并按下 ķ
  • 移动到右侧的拆分窗口:按 Ctrl + w 并按下 l

调整拆分窗口的大小

默认情况下,Vim 创建具有相似宽度/高度的分割。 这对我的强迫症有好处,但当我有一个我大部分时间编辑的文件和另一个我很少编辑的文件时,它并没有真正的生产力。

那么,让我们来看看如何在 Vim 中调整拆分窗口的大小。

调整窗口大小

要调整窗口大小,请使用以下任一方法:

  • Ctrl + w 组合键 [optionally specify a number] 然后按“+“(加号)符号 增加高度 当前窗口的
  • Ctrl + w 组合键 [optionally specify a number] 然后按““(减号)符号 降低高度 当前窗口的
  • Ctrl + w 组合键 [optionally specify a number] 然后按“<“(大于)符号 减小宽度 当前窗口的
  • Ctrl + w 组合键 [optionally specify a number] 然后按“>“(小于)符号 增加宽度 当前窗口的
调整窗口的宽度和/或高度

尽可能扩大窗口

以下是您可以按下以垂直展开垂直拆分窗口或水平展开水平拆分窗口的组合键。

  • 垂直展开 – 按 Ctrl + w 然后按下管道“|” 字符(在按住 Shift 键的同时按反斜杠键时输入的字符)
  • 水平展开 – 按 Ctrl + w 然后按“_
扩展窗口的高度或宽度

重置所有调整大小的窗口的大小

要重置所有拆分窗口的大小,请按 Ctrl + w 接着 ”=“。这将调整所有窗口的大小并使它们相等。

重置所有窗口的大小以使所有窗口均匀

更多改进工作流程的技巧

让我们回顾一下我认为您可能会发现对包括在 Vim 工作区中创建多个拆分窗口的工作流有用的一些技巧。

打开一个新的文件/缓冲区

这将在新拆分的窗口中打开相同的文件。 要在新窗口中打开另一个文件,请使用 :e 或者 :open 命令后跟文件名以使窗口拆分实际可用。

复制和粘贴

这实际上不是一个提示,但是当您从拆分窗口复制或剪切某些内容并移动到另一个窗口并尝试粘贴时,它会起作用。 无需额外配置。

重新映射键

如果您仔细观察活动窗口之间的导航,它类似于移动光标的方向。 除了,每次都需要按“Ctrl + w”,然后按 h、j、k、l 键。

下面是我个人使用的。 无需按“Ctrl + w”,然后按 h、j、k、l 键,您只需按“Ctrl + [h,j,k,l]”。

如果您想使用这些组合键,请将以下键添加到您的 ‘vimrc’ 中:

nnoremap <C-J> <C-W><C-J>
nnoremap <C-K> <C-W><C-K>
nnoremap <C-L> <C-W><C-L>
nnoremap <C-H> <C-W><C-H>

拆分调整

默认情况下,当您创建垂直拆分窗口时,它将向左打开。 要改变这个默认行为,将以下行添加到你的 ‘vimrc’。

set splitright

同样,如果您创建一个新的水平分割窗口,它将在 Vim 工作区的最顶部打开。 要在当前窗口的底部打开一个新的水平分割窗口,将以下行添加到您的 ‘vimrc’。

set splitbelow

结论

本文介绍如何在活动的 Vim 工作区中创建一个或多个水平或垂直拆分。 我们还讨论了如何调整拆分窗口的大小, close 一个活动的拆分窗口以及如何在打开的窗口之间导航。

对更高级的 Vim 主题感兴趣? 去学习这个强烈推荐的 Vim 课程。