I enjoy using vim, its endless features and the way it does things (for the most part). I've been using it on and off (not as my main editor) for at least 7 years now, so while I'm far from being an expert, I generally know my way around it.

Now, while I love it in the command-line, I'd really like it to be my main editor in Windows and Linux GUIs. But... gvim... is horrible. It breaks so many usability "rules" on Windows that it's not even worth fighting with it. Not even Cream, with its changes and fancy .vimrc, saves the day.

So, my question is: is there a modern vim GUI for Windows and Linux that makes it look and behave as most GUI editors? Having Sublime Text, Kate, TextMate or Editra's GUI with vim's features would be incredible. I realize all four (as well as many other editors) have plugins that sort of makes them behave like vim, but it's nowhere close (at least for Editra and Sublime Text, not sure for the others) the real vim.

Vim being open source, I'm really not sure why there hasn't been a complete GUI overhaul yet. Do people not use gvim?

  • 16
    Personally, I use gVim on Windows precisely because it behaves the same way as the console/terminal vim on Unixes. – user1686 Sep 10 '11 at 16:30
  • 1
    It would be useful to know some details of the usability rules with which you find gVim particularly at fault. – RedGrittyBrick Sep 10 '11 at 20:43
  • 2
    OK, here's one: selecting some text in visual mode and scrolling actually modifies the selection. I understand this happens because the cursor always has to remain visible, and it helps using the 'o' command while in visual mode, but this is so counter-intuitive to standard GUI apps. I see many people use gVim just because it behaves like Vim, but then why just not use console Vim? Setting up a Linux environment in Windows and/or using a good terminal like mintty is very easy to do. – imiric Sep 10 '11 at 21:35
  • 2
    Instead of "setting up a Linux environment in Windows", why not just use gVim? No setup needed. – user1686 Sep 10 '11 at 22:24
  • Here's another interesting discussion about having a modern GUI for Vim: groups.google.com/group/vim_use/browse_thread/thread/… – imiric Sep 14 '11 at 3:22

vim is designed for using the keyboard efficiently, not for using the mouse. thus, i find your complaint about a bad "gui" a bit awkward. if you do not like vim or if you do not want to learn how things are done in vim, thats just fine. but then you have to use another editor because vim just does not match your requirements.

so, i doubt there will be any gui-version of vim that matches your expectations of what a decent "graphical" editor should look like or should behave.

| improve this answer | |
  • 3
    or you just learn 100% vim and be done with the editor-problem till end of time :) – akira Sep 10 '11 at 17:18
  • 3
    There /are/ reasons to use gVim instead of Vim in just a console. Two examples: 1) There are meta combinations Vim can not see except in the GUI, due to limitations in terminal emulators and terminal handling libraries. 2) Significantly more extensive color support. Those aside, I do think it's supremely unfair to expect Vim to suddenly behave like every other GUI application just because it happens to have a GUI. Vim will probably always have to violate the usability "rules," or it wouldn't be Vim any more. If that's not what you want, I must reiterate others: Find a different editor. – Heptite Sep 11 '11 at 2:24
  • 5
    @imric: When I say that "it wouldn't be Vim any more," I actually mean it can not be Vim any more and "conform" in GUI mode. Vim is an enhanced vi clone, and vi literally existed before GUIs existed. It has a very unique user interface, and yes, that does conflict with current GUI usability guidelines. To get (all of) what you want, you're asking for an editor that really, truly, does not behave the way vi/Vim is intended to function. One rule that Bram Moolenar (the creator and copyright owner of Vim) has for Vim is, as much as possible, console and GUI Vim should behave similarly. – Heptite Sep 11 '11 at 18:59
  • 3
    @imric: why do you want to use vim at all if not for its "arrogant and unfair" ui? i mean, it's vim .. you use it coz it does the job the way it does, same for emacs. as i said already: if the tool conflicts with what you want: user a different tool. – akira Sep 13 '11 at 14:05
  • 2
    Personnally, my GVim is set up to look exactly like my Vim so I have no menus, no scrollbars, same fonts / colors... The only reason I'm sometimes using GVim instead of Vim is when I'm using the mouse and the wheel to go loosely through some files (when I'm having some coffee or some beer for instance). It doesn't happen a lot, but still, sometimes. I can't imagine why one would want a Vim that doesn't behave like Vim. Better to use another editor that have been designed with GUI in mind. – cedbeu Aug 19 '13 at 18:27

I agree with Akira's answers and comments.

The only conventions-friendly GUI for Vim is MacVim which, obviously, is a Mac-only application.

I'm not sure it's "the best of both worlds", but the latest beta of Sublime Text 2 has a very impressive "vintage" mode that covers a lot of useful Vim features (motions, text-objects) and maps other things (/ or ? for example) to its native features. I find its overall design a bit irritating so I don't see myself switching to it anytime soon but, again, the vintage mode is impressive.

| improve this answer | |
  • 1
    Right, MacVim seems to have a much better Vim GUI. But from what I understand it required quite a bit of work to make it look seamless in OS X, and gVim is a decades old monstrosity that gets virtually no updates. I have tried Sublime Text's Vim mode, and while it implements many of the movement and insert commands, it still falls short. – imiric Sep 14 '11 at 3:20
  • On MacOS X, good and coherent UIs are of paramount importance while nobody cares about that on Linux and Windows. That's why it mattered to the people behind MacVim and they went through the hard work it required. But the task was probably not that complicated because of established guidelines/traditions/usages and how these are enforced through the official dev tools. On this Linux desktop, my apps have at least 2 ways to name the main menu ("File" or some word related to the app's function) and at least 4 shortcuts for "Quit"/"Close Window" (<C-q>, <S-C-q>, <C-w>, :q…). I know… – romainl Sep 14 '11 at 5:37
  • … first hand it's largely the same on windows. I think it's hard to come up with a polished AND well integrated experience in such a messy environment without some kind of monetary incentive or authoritarian leadership. OK, sorry for the rant, back to regular schedule. – romainl Sep 14 '11 at 5:44

You can use VisualStudio Code and it has several plugins that add many of Vim's functionalities alongside with many goodies. It is a very good editor besides it is open and free and it has Windows, MacOs and Linux flavors.

| improve this answer | |
  • 1
    If you are a hard-core Vim fanboy, you likely won't find any of the VS Code Vim plugins satisfying. – user128580 Oct 22 '17 at 11:24
  • As an update to the above user's comment: As a Vim user for ~15 years, I'm perfectly happy with VSCode on Windows using the vi-mode plugin. It's, genuinely, quite excellent, compared to whatever you're expecting out of a "vi emulation plugin." (My go-tos nowadays are VimR.app on macOS and VSCode on Windows 10.) – ELLIOTTCABLE Feb 2 at 22:17

You can get a plugin for an IDE which gives it VIM keybindings. E.G.

Here's a very cool web IDE for web developers, includes git, which has VIM keybinding mode built in:

Otherwise, I do my development on a mac, and I'm a huge fan of MacVim, and I agree that gVim is super ugly on *nix, and I cringe whenever I have to run vim in an ssh shell on the server.

As far as VIM like editors which aren't a separate IDE, another (mac only, sorry) GUI app is:

| improve this answer | |
  • Thanks for your suggestions, but I decided to stick to console Vim for all my developing needs, instead of struggling with gVim. I already have my shell open all the time, I just have another tmux window running Vim, and it makes switching between editor to shell and back very fast and convenient. Plus, no usability rules being broken in the console. :-) I'm thinking on switching to Mac soon, and will give MacVim a try. – imiric Dec 28 '11 at 1:08

Vim is intended to be used without GUI. But if you are concerned about the menu bar and tool bar in gvim that looks out of place. You can disable it just insert

"Remove Menubar and Toolbar
set guioptions -=m 
set guioptions -=T

into your vimrc then it will be gone. on the bonus if your using windows lower than 10 your gvim resized better ( than default windows cmd ) and has better color scheme support and looks good.

| improve this answer | |

If you use access technology like a screen reader and want vim power you can give my project a try: https://code.google.com/p/phonim/ it uses JAWS scripting, and the gVim OLE interface. Although workable it leaves much to be desired, but even this limited access to the power of vim is worth while.

To improve the situation for gVim, all that is required is for someone with the proper know how to endow the vim backend with a modern UI front end with an editor component that has proper UIAutomation and MSAA support.

| improve this answer | |
  • No problem, have edited. Yeah, a bit of a rant, but you see, I love vim and really would like to have more people benefit from it :-). – Kerneels Roos Aug 12 '14 at 6:04

Perhaps something like Oni is what you're looking for. I've not personally used it, but it's based on neovim, so you shouldn't get a half baked feature set.

| improve this answer | |
  • Oni is now unmaintained, and Oni2 is paid software, which is about as sh!77y as one can get in this arena. – jdk1.0 Apr 3 at 21:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.