All Vim users are aware of the fact that there are several forks of it, most prominent of which is Neovim, and the latter being Gvim. However, Vim’s own developer, Bram Moolenaar, provides a GUI version of Vim from his official Vim website. So how does it differ from the regular Terminal Vim? It’s not actually a competitor to Vim, but rather Vim itself in a different interface. Nevertheless, there are a couple of differences you need to know about, to decide which one suits you best.
Rather than giving you everything at once, I’ll break them into separate sections to give you a more approachable insight on the differences.
User Interface (UI)
The lion’s share of the difference between Vim and Gvim is their interface. Gvim is simply a short for “Graphical Vim”, which is why, Gvim is compiled with a GUI (Graphical User Interface) in mind, while the regular Vim is made for being used in a Terminal, and thus has a TUI (Terminal User Interface). Both have their own sets of advantages and disadvantages, none of which outweigh the others. However, the difference in UI does not pose any visible gap between the features and functionalities except for one main thing.
As the regular Vim depends on a terminal to be run from, it can execute any given terminal command from right inside of Vim. On the other hand, Gvim, having its own interface and not being dependent on the terminal, means that it won’t be able to access any advanced terminal features. Some common terminal commands still work, like “ls” and “cd” if you happen to use a Linux machine. But if your OS is Windows, no luck on that.
If you first bring your attention to the top of the Gvim interface, you can already tell that it has its own menus with a toolbar included, as opposed to regular Vim. The menus include all the commonly used Vim commands and makes it easily accessible with a mouse. The toolbar can also be made to shortcuts if you do some tinkering with the configuration file.
Colors & Fonts
Gvim definitely takes a lead on this one. Admissible to the fact that Gvim comes with a GUI interface, it gives you a lot more control over the fonts you can use, and more importantly, the colorsss! You can pretty much use any colors in your Gvim setup as long as your own monitor supports it!
Coming to the regular Vim, being run from the terminal means that it will be limited to the set of colors the terminal is capable of handling. Also, the font used in Vim cannot be independent of the font used in the terminal itself, which could be a bit daunting for people looking to have a font in Vim that differs from the terminal.
However, if the font thing is not a problem, and the colors are all that matter to you, there’s good news. Most modern terminal emulators have support for “True Colors“, which is a way to say that it has a color gamut (range) of 16 millions colors. This is pretty much all the colors your monitor can handle. Moreover, as opposed to the fonts problem, you can use a different colorscheme for Vim, and if you don’t use one, the editor will pick the colors used by your terminal anyway.
As a side note, the folks who use Vim from a TTY (virtual terminal), are not going to get True Colors, or even at least a pleasant looking font unless you use a framebuffer. Period.
Vim has a single configuration file called vimrc, usually located in the home directory of you system. Gvim on the other hand has two configuration files, vimrc and another gvimrc, which is not given by default but can be created. Once created, the Gvim runtime will first scan the vimrc file (if it exists) for the settings, and scan the gvimrc after that. There isn’t any visible delay in loading times whatsoever, but what it allows you is to separate the settings that are specific to Gvim (such as the settings that allow you to customize the toolbar). All the GUI specific options should be written inside the gvimrc, as the vim help menu suggests.
If you wish to learn more about it, you can type “:h gvimrc” inside of both regular Vim and Gvim to get all the information you need.
Ease of Use
Gvim once again takes the lead for being to use, at least in a certain ways. The unable to quit Vim meme wouldn’t apply to Gvim as it can be quit directly using the close button from the title bar, and it’ll also present you a nice menu to decide whether you want to save the file, or exit without modifying.
As I’m using a window manager (DWM), I don’t have any title bar, but when I use the keyboard shortcut for quitting Gvim, it still present me the menu. You can still use the regular :q! or :wq for quitting if you wish. Not a problem.
This also brings us to another point. Gvim has a toolbar that is intractable using a mouse. You can click the buttons and even some commonly used settings can be directly altered using the Menus. It is quit easy to say that Gvim is more beginner friendly than the regular Vim. However, posing the niceness of using a mouse means it won’t go well with the motto for Vim, “An editor biased towards using a keyboard only to boost efficiency”.
Gvim nevertheless, is good for beginners. But once you get into control, you’d probably want to ditch it for the true, Vim experience, as long as you’re happy with the colors and fonts.
The last thing we’re going to cover is how far is each of the two reachable. Vim can be accessed directly from an SSH server through the terminal, and also has a nice feature to detach the current session of Vim in the terminal to set it in the background, which you carry out other tasks. Regular Vim can even be using in a Smartphone, given that you have a terminal emulator. In Gvim, you may need to climb the extra mile by first mounting a remote system to your local system, then only can you use Gvim to edit a remote file, but it gets worse from there.
Overall, Vim is proably more accessible, and is a treat for the Server Homies who don’t have access to a graphical interface.
To sum up, it all depends on how you want to use Vim for yourself. If want those easy-going menus and the toolbar that Gvim has to offer, it is probably for you. But if you wish to go pro and become One of those People, the regular, Terminal Vim is your choice. I’ve tried my best to give you all the differences I could to help you decide better, but the rest of the journey is all yours to walk.