As a full-stack developer and Linux power user, I frequently find myself working with multiple files and projects simultaneously. Vim‘s excellent window management capabilities make it easy to edit multiple files and view different parts of a project at the same time.
In this comprehensive guide, I‘ll explain how to open, edit, and switch between multiple files and splits in Vim. Whether you‘re just getting started with Vim or looking to boost your workflow, read on to master Vim‘s multi-file capabilities.
Opening Multiple Files in Vim
You can open multiple files in Vim during initial startup or by opening additional files during an editing session.
Opening Multiple Files at Startup
To open multiple files when first launching Vim, specify all the filenames on the command line:
$ vim file1.js file2.js file3.js
This will start Vim and load the first file specified (file1.js). You can then edit and save this file normally with Vim commands like :w.
To switch to the other file tabs, use the commands explained in the switching section below.
Opening Additional Files Mid-Session
You can also open extra files during an active editing session with the :e command.
For example, if you‘re editing file1.js and want to open file2.js as well:
:e file2.js
This will load file2.js into a new buffer while keeping file1.js open in the current window.
You can now switch between the two files with :bnext, :bprevious and other commands.
Switching Between Open Files
Vim provides many shortcuts to switch between open file buffers:
:bnext– Move to the next open file:bprevious– Move to previous open file:bfirst– Jump to first open file:blast– Jump to last open file:b#– Switch to file number #:b filename– Switch to file by name
For example:
:bnext
:bprevious
:b 2
:b index.html
You can also use :ls to list all currently open file buffers and :bn/:bp to navigate the list.
Two additional important commands:
:w– Save current file:wall– Save all open files
Make sure to save files before switching if you want preserve your changes!
Splitting Vim Windows
While you can switch between files with buffers and tabs, Vim also lets you view multiple files in split windows.
This allows you to see different files or parts of a file simultaneously, for easy comparison and edits.
There are a few different ways to split Vim windows.
Horizontal Splits
To split the Vim window horizontally into two panes, press Ctrl + w followed by s in normal mode.
You can also use the :split command:
:split
This will show the current file in both panes.
To open a different file, specify it after the split command:
:split index.html
You now have two splits with different files that you can scroll and edit independently!
Vertical Splits
Similarly, you can split the window vertically with Ctrl + w then v:
Ctrl + w v
Or with the :vsplit command:
:vsplit sidebar.js
This is useful for viewing and editing different parts of the same file.
You can continue splitting horizontally and vertically to have multiple panes open.
Managing Split Windows
Here are some vital navigational splits once you have multiple windows open:
Ctrl + w h– Navigate to the split on the leftCtrl + w j– Move to the window belowCtrl + w l– Go to the window on the rightCtrl + w k– Go to the window aboveCtrl + w w– Cycle between open windowsCtrl + w o– Close all splits but the current:close– Close current split window
So if you have files split vertically, horizontally and every which way, you can quickly navigate and organize the views.
No more clicking!
Opening Splits from the Terminal
You can even open up split views directly from the terminal when starting Vim using flags:
vim -o file1 file2– Open horizontal splitvim -O file1 file2– Open vertical split
This will launch one file per pane so you can dive right into synchronized scrolling and editing.
Vim Splits for Efficient Web Dev
As a full-stack developer, I make extensive use of Vim splits for web projects.
Some examples:
- Put HTML, CSS, and JavaScript splits side-by-side for front-end coding
- View log files and source code simultaneously
- Keep notes in one pane while editing code
- Compare original and edited configuration files
- Follow tutorials or instructions while writing code
The ability to visually focus on different files and concepts simultaneously helps me code more efficiently.
Conclusion
Vim‘s powerful multi-file handling and split window capabilities enable flexible and productive editing of code and text.
You now have all the knowledge to unleash Vim‘s potential for:
- Opening multiple files from startup and within sessions
- Rapidly switching between open file buffers
- Splitting windows vertically and horizontally
- Seamlessly navigating between window splits
Integrate these into your coding workflows to work faster and smarter!
Let me know in the comments if you have any other Vim tips and tricks for managing multiple files.


