Working with multiple files or views requires switching buffers. Split windows provide simultaneous visibility of multiple files or different parts of the same file.
Vim supports horizontal (:split) and vertical (:vsplit) window splits for simultaneous file viewing. Window commands enable navigation and resizing.
Split commands:
| Command | Action |
|---|---|
:split or :sp | Horizontal split (top/bottom) |
:vsplit or :vsp | Vertical split (left/right) |
:split <file> | Split and open file |
<C-w><dir> | Switch focus (dir = h,j,k,l or arrows) |
<C-w>_ | Maximize horizontal split |
| ` | ` |
<C-w>+ | Grow split by 1 line |
<C-w>- | Shrink split by 1 line |
- Each split has its own buffer
- Splits share registers and global settings
:hidecloses current split:onlycloses all other splits
- Resize mode:
<C-w>=equals all split sizes - Tab-based workflow is modern alternative to splits
:help splithas comprehensive documentation
digraph aliases____split__vsplit__window__pane___split___vsplit__ {
rankdir=LR
node [shape=box style=filled fillcolor="#f0f4ff" fontname="Helvetica"]
A [label="Aliases: "[Split, Vs\nInput"]
B [label="Aliases: "[Split, Vs\nCore Mechanism"]
C [label="Aliases: "[Split, Vs\nOutput"]
A -> B [label="triggers"]
B -> C [label="produces"]
}graph semantic_aliases____split__vsplit__window__pane___split___vsplit__ {
layout=neato
node [shape=ellipse fontname="Helvetica" fontsize=11 style=filled]
THIS [label="Aliases: "[Split, Vs" fillcolor="#ffd700" fontsize=13 style="filled,bold"]
REL1 [label="Related Concept" fillcolor="#f0f0f0"]
REL2 [label="Builds Into" fillcolor="#d4edda"]
THIS -- REL1 [label="related"]
THIS -- REL2 [label="builds into"]
}- Block Selection — Shares window commands
- Survival Commands — Buffer commands apply in splits
- Visual Selection — Works across splits
- Vim Modes — All commands work in split windows