Vim offers multiple file editing with the help of windows. You can easily open multiple files and edit them using the concept of buffers.
Understanding vim buffer
A buffer is nothing but a file loaded into memory for editing. The original file remains unchanged until you write the buffer to the file using w or other file saving related commands.
Understanding vim window
A window is noting but a viewport onto a buffer. You can use multiple windows on one buffer, or several windows on different buffers. By default, Vim starts with one window, for example open /etc/passwd file, enter:
$ vim /etc/passwd
Open two windows using vim at shell promot
Start vim as follows to open two windows stacked, i.e. split horizontally:
$ vim -o /etc/passwd /etc/hosts
$ vim -o file1.txt resume.txt
The -Ooption allows you to open two windows side by side, i.e. split vertically, enter:
$ vim -O /etc/passwd /etc/hosts
How do I switch or jump between open windows?
This operation is also known as moving cursor to other windows. You need to use the following keys:
- Press CTRL + W + <Left arrow key> to activate left windows
- Press CTRL + W + <Right arrow key> to activate right windows
- Press CTRL + W + <Up arrow key> to activate to windows above current one
- Press CTRL + W + <Down arrow key> to activate to windows down current one
- Press CTRL-W + CTRL-W (hit CTRL+W twice) to move quickly between all open windows
How do I edit current buffer?
Use all your regular vim command such as i, w and so on for editing and saving text.
How do I close windows?
Press CTRL+W CTRL-Qto close the current windows. You can also press [ESC]+:q to quit current window.
How do I open new empty window?
Press CTRL+W + n to create a new window and start editing an empty file in it.
Press CTRL+W+ s to split current window in two.
How do I open exiting file in a new windows?
How do I resize Window?
You can increase or decrease windows size by N number. For example, increase windows size by 5, press [ESC] + 5 + CTRL + W+ +. To decrease windows size by 5, press [ESC]+ 5 + CTRL+ W + -.
Moving windows cheat sheet
|CTRL-W h||move to the window on the left|
|CTRL-W j||move to the window below|
|CTRL-W k||move to the window above|
|CTRL-W l||move to the window on the right|
|CTRL-W t||move to the TOP window|
|CTRL-W b||move to the BOTTOM window|
How do I quit all windows?
Type the following command (also known as quit all command):
If any of the windows contain changes, Vim will not exit. The cursor will automatically be positioned in a window with changes. You can then either use ":write" to save the changes:
or ":quit!" to throw them away:
How do save and quit all windows?
To save all changes in all windows and quite , use this command:
This writes all modified files and quits Vim. Finally, there is a command that quits Vim and throws away all changes:
- Refer "Splitting windows" help by typing :help under vim itself.