- Mastering Vim
- Ruslan Osipov
- 455字
- 2025-04-04 15:36:05
Creating, deleting, and navigating windows
Let's give working with windows a shot. Open animal_farm.py (either from a command line by running $ vim animal_farm.py or from Vim with :e animal_farm.py).
Open one of our files in a split window:
:split animals/cat.py
You can see that animals/cat.py was opened above the current file and that your cursor was placed there:

You can split the window vertically as well by running the following code:
:vsplit farm.py
As you can see, this creates another window in a vertical split (your cursor is now moved to the new window):

You can combine the :split and :vsplit commands indefinitely to create as many windows as you need.
All of the commands you've learned so far will function as usual within this window, including changing buffers. To move between the windows, use Ctrl + w, followed by a directional key: h, j, k, or l. Arrow keys work as well.
" Fast split navigation with <Ctrl> + hjkl.
noremap <c-h> <c-w><c-h>
noremap <c-j> <c-w><c-j>
noremap <c-k> <c-w><c-k>
noremap <c-l> <c-w><c-l>
Give it a shot: Ctrl + w followed by j will move you to the window below, and Ctrl + w, k will move the cursor back up.
You can close the split window in one of the following ways:
Ctrl + w, followed by q will close the current window
- :q will close the window and unload the buffer; however, this will close Vim if you only have one window open
- :bd will delete the current buffer and close the current window
Ctrl + w, followed by o (or the :only or :on command) will close all windows except for the current one
If you want to close a buffer without closing the window it's in, you can add the following command to your .vimrc file:
command! Bd :bp | :sp | :bn | :bd " Close buffer without closing window.
You'll be able to use :Bd to close the buffer while keeping a split window open.