Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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?

share|improve this question
10  
Personally, I use gVim on Windows precisely because it behaves the same way as the console/terminal vim on Unixes. –  grawity Sep 10 '11 at 16:30
    
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
1  
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. –  grawity 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

3 Answers 3

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.

share|improve this answer
    
I agree with you. But I don't see the point in gVim at all, then. Why have a menu bar and buttons if it's meant only for keyboard use? The fact is lots of (most?) people use GUIs and mouse-driven interfaces, and having an application intentionally break many GUI conventions is just frustrating. –  imiric Sep 10 '11 at 16:52
1  
or you just learn 100% vim and be done with the editor-problem till end of time :) –  akira Sep 10 '11 at 17:18
1  
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
2  
@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
1  
@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

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.

share|improve this answer
    
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 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:

share|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

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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