Vim 的多窗口機制是提升編輯效率的核心功能,支援水平/垂直分割、緩衝區共享、動態增減窗口。本文系統梳理從啟動參數到正常模式命令的完整操作體系,並提供實戰場景化技巧,助你掌握專業級多文件並行編輯流程。
# 水平分割(上下兩半)
vim -o file1 file2
# 垂直分割(左右兩半)
vim -O file1 file2
# 預分配 N 個窗口(含空窗口)
vim -o5 file1 file2 # 分配 5 個水平窗口,3 個空閒
行為細節:窗口數超過螢幕顯示能力時,首文件佔據主要區域,其餘載入緩衝區(:ls 可見),透過 Ctrl-W w 循環切換。
| 命令 | 效果 | 備註 |
|---|---|---|
:split / :sp | 水平分割當前窗口,顯示同一緩衝區 | 可接檔名開啟新文件::sp file3 |
:vsplit / :vs | 垂直分割當前窗口,顯示同一緩衝區 | 同支援指定檔名 |
:new | 水平分割建立空白窗口 | |
:vnew | 垂直分割建立空白窗口 |
| 組合鍵 | 動作 | 記憶技巧 |
|---|---|---|
Ctrl-W h/j/k/l | 移動至左/下/上/右窗口 | 對應 Vim 方向鍵 |
Ctrl-W w | 循環切換下一個窗口 | |
Ctrl-W p | 跳回上一個訪問窗口 | Previous |
Ctrl-W t / b | 跳至頂部/底部窗口 | Top/Bottom |
Ctrl-W = # 等寬高分配
Ctrl-W _ # 最大化當前窗口高度
Ctrl-W | # 最大化當前窗口寬度
Ctrl-W + / - # 增加/減少高度
Ctrl-W > / < # 增加/減少寬度
# 數字前綴指定行/列數:10 Ctrl-W +
| 命令/鍵 | 動作 |
|---|---|
:close / Ctrl-W c | 關閉當前窗口(若為最後一窗口則退出 Vim) |
:only / Ctrl-W o | 關閉其他所有窗口,僅保留當前 |
:q | 退出當前緩衝區(若無修改),窗口隨之關閉 |
:hid / :hide | 隱藏當前緩衝區但保留窗口佈局 |
:set scrollbind # 當前窗口啟用同步捲動
# 在另一窗口同樣執行,即可雙窗口同步捲動對比差異
:set cursorbind # 同步游標行位置
:sp %:h/related_file.c # %:h 為當前文件目錄
:vs %:h/../include/header.h
:terminal # 在水平分割開啟終端
:vertical terminal # 垂直分割開啟終端
# 終端模式下 Ctrl-W N 進入正常模式操作其他窗口
:mksession ~/vim_session.vim # 保存佈局、緩衝區、游標位置
vim -S ~/vim_session.vim # 恢復會話
:ls 列出緩衝區,:b <Tab> 快速切換,避免窗口過多導致視野碎片化.vimrc 添加 nnoremap <leader>v :vsplit<CR> 等自定義映射掌握 Vim 多窗口的啟動、分割、導航、調整與緩衝區協同體系,即可構建媲美 IDE 的高效多文件編輯環境,大幅提升代碼閱讀、重構與對比效率。
Linux 查看已安裝核心版本指令大全:RHEL/CentOS、Debian/Ubuntu、SUSE、Arch 通用查詢方法
Linux head 指令完整用法:顯示檔案開頭 N 行/位元組、排除尾部、管道配合篩選
CentOS 6 磁碟配額修改完整實戰:從建立用戶到 quota 限額調整
Linux 硬碟直啟 ISO 映像:GRUB2 循環掛載啟動 Ubuntu/CentOS Live 系統完整教學
Ubuntu 使用 UbuTricks 一鍵安裝最新版應用程式(遊戲、多媒體、開發工具等)
Linux 編譯連結報「undefined reference to `dlclose'」解決方案
Linux 系統使用 mpstat 指令監控 CPU 使用率完整指南
Linux 安裝配置 NetPas 遊戲加速器:VirtualBox + Windows XP + NAT32 完整方案