在 Linux 系统管理和开发的世界里,效率就是生命。如果你经常在终端环境下工作,你一定离不开 Vi 或 Vim 编辑器。然而,许多开发者仅仅停留在“打开文件、编辑、保存、退出”的基础操作上。你是否遇到过这样的情况:需要同时参考一个配置文件的参数来修改另一个文件,或者需要一边查看代码逻辑一边编写测试用例?频繁地在文件间切换无疑会打断你的思路,降低工作效率。
在这篇文章中,我们将深入探讨一个能显著提升你工作效率的 Vi/Vim 核心功能——屏幕分割。我们将结合 2026 年最新的 AI 辅助开发趋势,不仅学习如何水平和垂直分割屏幕,还将探索在远程开发、容器化环境以及“人机结对编程”场景下的最佳实践。让我们开始这场进阶之旅,彻底告别低下的文件切换效率。
为什么选择 Vi/Vim:不仅仅是怀旧,更是为了掌控
在正式进入屏幕分割的讲解之前,让我们花一点时间回顾一下为什么 Vi/Vim 依然是 Linux 世界——乃至现代 AI 时代的统治者。
虽然现在的我们有了 Cursor、Windsurf 等强大的 AI 原生 IDE,但 Vi/Vim 的哲学——“编辑器本身应当不脱离终端,且操作可组合”——从未过时。在 2026 年,随着云原生开发 和 SSH 远程开发的普及,我们经常需要在没有图形界面的服务器上直接处理代码。这时, Vim 的多窗口分割能力就成为了我们手中的“瑞士军刀”。它不需要鼠标支持,不依赖复杂的 GUI 渲染,却能在一个终端会话中提供媲美本地 IDE 的多文件编辑体验。
水平分割屏幕:上下对照的智慧
水平分割是最直观的分割方式,它将你的终端窗口切成上下两个(或更多)独立的“窗格”。这在需要对比两个文件的内容,或者将函数定义(上方)与函数调用(下方)放在一起查看时非常有用。
#### 方法一:使用命令行
首先,让我们看看最正统的命令方式。请按照以下步骤操作:
- 确保处于命令模式:无论你当前正在做什么,请先按一下
Esc键。 - 输入分割命令:
:split filename
实用技巧:为了追求极致的输入效率,我们几乎总是使用缩写 :sp。
:sp filename
#### 方法二:使用快捷键(推荐)
对于追求键盘流的我们来说,快捷键是唯一的选择。
- 操作序列:INLINECODE667b2d00 然后按 INLINECODEd2b9da16 (split)。
#### 实战示例:在云环境中同步调试
假设我们正在通过 SSH 连接到一个远程的 Kubernetes Pod 进行调试(这在 2026 年是非常常见的场景)。我们需要同时查看应用日志和修改配置文件 config.yaml。
- 打开配置:
vim config.yaml。 - 水平分割并在下方运行日志监控:
我们可以利用 Vim 8.0+ 引入的异步作业功能。
:sp
:term kubectl logs -f pod-name
现在,你在上方编辑配置,下方实时滚动着日志。这种布局让你在修改配置时能立即看到反馈,这是单窗口编辑无法比拟的优势。
垂直分割屏幕:左右并排的艺术
现代显示器通常是超宽屏,垂直分割不仅符合视觉习惯,更是“结对编程”和 AI 辅助编码 的理想布局。
#### 方法一:使用命令行
:vsplit filename
简写为 :vs。
#### 方法二:使用快捷键
- 操作序列:INLINECODEf28bede1 然后按 INLINECODE44b71d8b (vertical)。
#### 实战示例:2026 年的 AI 辅助工作流
想象一下,你正在使用嵌入在 Vim 中的 AI 插件(如 vim-ai 或 Copilot.vim)。最佳实践通常是:左边写代码,右边放 AI 上下文窗口 或 Prompt 定义。
- 打开
vim main.go。 - 垂直分割打开
:vs PROMPTS.md。 - 工作流:你在左边写函数,然后在右边的
PROMPTS.md中编写对该函数的重构指令(例如:“优化这段代码的内存占用,使用 Go 1.24 的泛型特性”),然后通过快捷键调用 AI 执行右边的指令并应用到左边的代码。
在这个场景中,垂直分割不仅仅是为了查看代码,更是为了构建一个“人机交互界面”。
进阶技巧:Tab页与多窗口的混合矩阵
仅仅掌握两个窗口的分割是不够的。在实际的大型项目中,我们往往需要同时处理 3 到 4 个文件。这就需要我们将 Tab 页(标签页)和 Window Splitting(窗口分割)结合起来使用。
#### 1. 使用标签页管理任务组
在 2026 年的复杂开发环境中,我们建议将 Tab 视为“任务组”。
- 创建标签页:INLINECODE2f708a58 或 INLINECODEae51a9da。
- 切换标签页:INLINECODEd0289479 (下一个) 或 INLINECODE2696c48e (上一个)。
实战场景:
- Tab 1 (Backend Dev): 包含三个垂直分割的窗口,分别用于 Controller, Service, Repository 层。
- Tab 2 (Frontend Debug): 包含两个水平分割的窗口,上方是 JSX 代码,下方是 CSS 样式。
通过这种方式,你可以利用 gt 快速在“后端模式”和“前端模式”之间切换,而每个模式下的窗口布局保持不变。这种空间管理能力,是现代 IDE 经常模仿但难以超越的。
#### 2. 灵活的窗口布局调整
让我们思考一下这个场景:你在左边写代码,右边看文档。突然,你需要左边显示更多内容来进行多行编辑。
- 快速最大化:INLINECODEe52983cf 然后 INLINECODE95041c72 (竖线)。这将当前窗口(左边)扩展到占据整个屏幕宽度,文档窗口被隐藏。
- 快速恢复:INLINECODE36eb8f51 然后 INLINECODEbf87aa36 (等号)。所有窗口恢复平均分布。
这种“呼之即来,挥之即去”的交互体验,能让你保持心流状态。
2026 现代开发范式:Vi 与 Agentic AI 的协同
在文章的这一部分,我们需要谈谈未来的趋势。随着 Agentic AI(自主智能代理)的兴起,Vim 的窗口分割有了全新的意义。
在 2026 年,我们不仅是为自己分割屏幕,也是在为 AI Agent 准备工作区。
场景:AI 代理重构代码
当我们给 AI Agent 下达指令:“重构 utils.py 中的所有遗留函数”时,Agent 可能需要在后台运行。为了不阻塞我们的工作流,我们可以这样做:
- 主窗口:继续在当前文件中编写新功能。
- 垂直分割窗口 (
:vs utils.py):在这个窗口中,我们让 AI Agent 进行操作。 - 观察者模式:通过配置自动刷新或使用文件变更监听,我们可以在眼角的余光中看到 AI 正在右侧窗口实时修改代码,就像有一个隐形的结对编程伙伴在旁边与你并肩作战。
在这个场景中,Vim 的多窗口不再是静态的文件展示,而是动态的协作界面。我们需要熟悉在不同窗口间快速跳转:
-
Ctrl + w + w: 在“我的工作区”和“AI 的工作区”之间快速切换,审查 AI 的修改。
深入:代码差异化与故障排查
在传统的 Vi 使用中,如果我们要对比两个文件的差异,可能会退出编辑器使用 diff 命令。但在 2026 年,我们追求的是“零上下文切换”。
我们可以使用 vimdiff 模式,这在本质上就是预加载了垂直分割和差异高亮的 Vim。
启动命令:
vimdiff file_original.py file_modified.py
# 或者
vim -d file_original.py file_modified.py
在内部操作:
如果你已经在 Vim 中,可以使用 :diffthis 将当前窗口标记为差异对比模式。
实战故障排查:
假设一次生产环境的部署导致了配置错误。
- 垂直分割打开生产环境配置
:vs /prod/config.yml。 - 在另一个窗口打开本地备份
:view /backup/config.yml。 - 在两个窗口中分别执行
:diffthis。
Vim 会立即高亮显示差异点。
- 快速定位:使用 INLINECODE3630d80c 跳转到下一个差异点,INLINECODEc3815599 跳转到上一个。
- 批量合并:如果确认生产环境的配置是正确的,可以使用 INLINECODE220d8618 (diff put) 将当前行的差异直接推送到另一个窗口,或者 INLINECODE981351e9 (diff obtain) 获取对方的修改。这比肉眼比对并手动修改要快上百倍,且极大降低了人为失误的风险。
结语:构建面向未来的编辑器哲学
在这篇文章中,我们不仅重温了如何在 Vi 中水平和垂直分割屏幕,更重要的是,我们将这一看似古老的技能置于了 2026 年的现代开发语境中。
让我们回顾一下关键要点:
- 模式意识:始终确认你处于命令模式 (
Esc),这是高效操作的前提。 - 布局逻辑:水平分割适合“上下文对照”(如代码与日志),垂直分割适合“横向关联”(如代码与 AI Prompt 或 文档)。
- AI 协同:在现代开发中,利用分割窗口来隔离或展示 AI 代理的工作结果,能实现高效的人机协作。
- Vimdiff:利用内置的差异模式进行故障排查,是系统管理员和 SRE 工程师的必备技能。
掌握了这些技能,你的终端不再是一个单调的文本输入框,而是一个拥有多任务处理能力、甚至能与 AI 协同作战的强大控制台。无论技术潮流如何变迁,这种对工具的深度掌控力,都将是你作为技术人员最核心的竞争力。继续探索,让键盘成为你思维的延伸吧!