Better GUI for vim?

15

3

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?

imiric

Posted 2011-09-10T16:27:09.677

Reputation: 418

15Personally, I use gVim on Windows precisely because it behaves the same way as the console/terminal vim on Unixes. – user1686 – 2011-09-10T16:30:17.693

1It would be useful to know some details of the usability rules with which you find gVim particularly at fault. – RedGrittyBrick – 2011-09-10T20:43:02.510

2OK, 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 – 2011-09-10T21:35:10.970

2Instead of "setting up a Linux environment in Windows", why not just use gVim? No setup needed. – user1686 – 2011-09-10T22:24:19.287

Here's another interesting discussion about having a modern GUI for Vim: http://groups.google.com/group/vim_use/browse_thread/thread/515733a49dc58074

– imiric – 2011-09-14T03:22:38.773

I completely share your frustrations--I discovered the power of Vim about two years ago, and I tried using it exclusively for about a year, but I realized that my frustration with the (lack of) GUI killed any marginal productivity bonus I got from Vim, so I ended up switching to another editor and have not regretted it. (Although I do miss it from time to time.) I suggest you do the same, because most Vim folks simply don't care about the GUI--MacVim is a special case. Don't try to fight with it; accept that it's simply not for you. – Sasha Chedygov – 2012-03-29T08:34:02.263

Hehe thanks for the support musicfreak, this doesn't seem like a popular opinion among geeks. The reality is that I can't live without Vim, it really makes development much faster and comfortable once you get used to its idiosyncrasies. Which is why I've abandoned gVim and kept using console Vim exclusively, and it's worked out great. gVim is a horrible app, stick to Vim. – imiric – 2012-03-30T14:57:45.757

Answers

11

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.

akira

Posted 2011-09-10T16:27:09.677

Reputation: 52 754

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 – 2011-09-10T16:52:34.740

i run gvim so it looks like running in a (x)term. the point is: there is no good term on windows, which makes gvim the only sane version of running vim on windows. mouse support is better than in (x)term as well. again: if (g)vim works against of what you expect and given that you don't want to learn vim: there is no shame in using something else (notepad2/notepad++/whatever)... just don't be stupid and "fight vim" coz that fight you will lose for sure :) – akira – 2011-09-10T16:53:43.710

I have no shame in using something else, which is what I've been doing for a long time. The thing is that nothing I've found in the GUI world comes close to having vim's features. So I usually end up going back and forth from Editra/Sublime Text/Notepad++ to console vim or (shudders) gVim. What I really want is the best of both worlds. – imiric – 2011-09-10T16:58:56.390

3or you just learn 100% vim and be done with the editor-problem till end of time :) – akira – 2011-09-10T17:18:44.340

3There /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 – 2011-09-11T02:24:14.290

I actually think it's extremely unfair (and arrogant) of Vim to behave exactly like it does in the console (with the additional features you mention) in a GUI environment, just because it's Vim. An app should conform to the OS, not the other way around. Besides, it's entirely possible for Vim to look and act like a regular GUI editor. The fact it still doesn't probably tells more about its users than Vim. Anyway, I've decided to try and stick to the console Vim, which behaves exactly how I expect it to... in a console. – imiric – 2011-09-11T10:13:11.857

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 – 2011-09-11T18:59:53.067

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 – 2011-09-13T14:05:01.907

2Personnally, 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 – 2013-08-19T18:27:31.653

6

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.

romainl

Posted 2011-09-10T16:27:09.677

Reputation: 19 227

1Right, 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 – 2011-09-14T03:20:29.540

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 – 2011-09-14T05:37:54.037

… 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 – 2011-09-14T05:44:19.593

3

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.

Marco Santana

Posted 2011-09-10T16:27:09.677

Reputation: 51

1If you are a hard-core Vim fanboy, you likely won't find any of the VS Code Vim plugins satisfying. – None – 2017-10-22T11:24:30.497

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 – 2020-02-02T22:17:30.850

2

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:

Thomas Hunter

Posted 2011-09-10T16:27:09.677

Reputation: 753

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 – 2011-12-28T01:08:46.187

1

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.

user93

Posted 2011-09-10T16:27:09.677

Reputation: 111

1

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.

vimist

Posted 2011-09-10T16:27:09.677

Reputation: 151

1

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.

Kerneels Roos

Posted 2011-09-10T16:27:09.677

Reputation: 11

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 – 2014-08-12T06:04:20.933