| Now THIS is a great idea. vim lacks a lot of modern features, and the fact that it has to be compatible with running on shells means that it can't implement a lot of things which you would need to make it look and feel like a normal editor. For example, we'd need the ability to make windows that are only part of the screen, in order to make convenient popups (for, say, ctrl-p find in files actions). We'd need the ability to have actual graphics to separate sections. We'd need the ability to have different fonts for different buffers. Etc. What I think we need is an IDE which is just a layer on top of vim, which gives it a few things: * a sidebar, ala NERDTree, only good-looking and consistent with how sidebars should act, e.g. doesn't move with the other window-movement commands, can't be changed to another buffer. * Honest-to-God normal IDE Tabs, which let you have lots of open buffers, let you see them visually and switch between them normally. * A buit-in, fast, find-in-project/find-tag/command-t like functionality, which has nice graphics to make it easy to use and is actually fast on any project. Etc. And all of this can be done on top of a normal vim, making it have the ability to have all of the old plugins and configurations works. Obviously a lot won't be necessary (e.g. NERDTree), but for GUI environments, this would absolutely make vim rock. |
I agree a lot of that stuff would be nice with vim, don't get me wrong, but I think we don't need an IDE layered on top of vim, so much as we to do some work on DEintegrating the development environment.
I'm not advocating for getting rid of all-in-one tools, I've seen the power of VS and IntelliJ etal in competent user's hands, they are fine envrionments, if that is your preference and it makes you productive, then awesome.
What I think the programming environment world needs (not just vim) is a standard way for user interfaces to talk to tools. Right now if you come up with a great way to auto refactor code, or do inline static analysis or build tool chains or whatever, you have to target a specific environment, or redo a lot of work to have it work available in multiple tools. However if there was a standard api or protocol, the same code would work for all developers and you could focus your effort on making the tool that much better.
It isn't immediately obvious to me how this would work, and I've been thinking about it off and on for a while now, but I think it could be a major benefit to the world, in the way http/html have freed up a lot of the nonsense around programming interfaces for users in a cross-platform way. My thinking right now is being largely influenced by the git model of "plumbing" and "porcelain" command setup, where the "porcelain" is the editor/environment tool.
Anyway, I probably did a poor job of explaining my thinking, it being saturday morning and all.