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.
🐧 Get the latest tutorials on SysAdmin, Linux/Unix, Open Source/DevOps topics:
|Category||List of Unix and Linux commands|
|Firewall||Alpine Awall • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04|
|Network Utilities||dig • host • ip • nmap|
|OpenVPN||CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04|
|Package Manager||apk • apt|
|Processes Management||bg • chroot • cron • disown • fg • jobs • killall • kill • pidof • pstree • pwdx • time|
|Searching||grep • whereis • which|
|User Information||groups • id • lastcomm • last • lid/libuser-lid • logname • members • users • whoami • who • w|
|WireGuard VPN||Alpine • CentOS 8 • Debian 10 • Firewall • Ubuntu 20.04|