Forgot your password?
typodupeerror
GUI Programming

IDEs With VIM Text Editing Capability? 193

Posted by timothy
from the one-keybinding-to-rule-them-all dept.
An anonymous reader writes "I am currently looking to move from text editing with vim to a full fledged IDE with gdb integration, integrated command line, etc. Extending VIM with these capabilities is a mortal sin, so I am looking for a linux based GUI IDE. I do not want to give up the efficient text editing capabilities of VIM though. How do I have my cake and eat it too?"
This discussion has been archived. No new comments can be posted.

IDEs With VIM Text Editing Capability?

Comments Filter:
  • by stoolpigeon (454276) * <bittercode@gmail> on Wednesday December 30, 2009 @03:31PM (#30598246) Homepage Journal

    Netbeans [netbeans.org] with the Vi Vim for netbeans [sourceforge.net] plugin.
     
    Netbeans is FOSS, runs on Windows, Linux and OS X. It handles Java, C/C++, PHP, Python, Ruby, Groovy and does a bunch of other stuff.
     
    There is the viPlugin [viplugin.com] for Eclipse [eclipse.org] as well - I just happen to like Netbeans better.
     
    The ActiveState folks list VI key bindings as a feature for their Komodo [activestate.com] and Komodo Edit products. These are closed source though Komodo Edit is free as in beer. It is cross platform - covering the win/lin/mac world.
     
    I'm sure there are other options but those are the largest projects I know of that do what you want.

    • Re-reading that and realize that it says Komodo Edit is closed source. That's not right, realized it after I hit submit. Komodo Edit is FOSS. Komodo IDE is closed.

    • by Draek (916851)

      Actually, Komodo Edit was open-sourced a while ago, only the Komodo IDE continues being closed-source (and commercial as well). However, one of the features missing from Edit is debugger integration so it probably won't satisfy the original poster's criteria.

      Also, I'm pretty sure there are ways to use ViM as the editing component in VisualStudio as well, but I've never tried them so I don't know how they work.

    • by iMaple (769378) * on Wednesday December 30, 2009 @03:42PM (#30598452)

      And if you want to use Visual Studio then visit the main download page
      http://www.vim.org/download.php [vim.org] and get:
      ftp://ftp.vim.org/pub/vim/pc/gvim72ole.zip [vim.org]
      (OLE GUI executable, A GUI version with OLE support. This offers a few extra features, such as integration with Visual Developer Studio. But it uses quite a bit more memory.)

      And you can safely disregard the more memory part, if you are already using visual studio :D

      http://vim.wikia.com/wiki/Integrate_gvim_with_Visual_Studio [wikia.com] for tips if you need help setting it up.

      • by stoolpigeon (454276) * <bittercode@gmail> on Wednesday December 30, 2009 @03:45PM (#30598494) Homepage Journal

        I don't think VS runs on Linux.

      • by schnablebg (678930) on Wednesday December 30, 2009 @05:28PM (#30599784)

        This is not informative to anyone who wants to use a recent version of Visual Studio (ie, anything since VS2003) because it does not work. There is a lame workaround to open the file externally in vim and save it back. You need to use ViEmu [viemu.com] if you want a vi mode in VS. It is commercial software, but worth it. If you are stuck on VS5 or 6, god help you; a vi mode is not going to save you.

        In any case, what the OP is looking for is actually just vim and the knowledge to use it to its full potential. Extending vim is not a "mortal sin," it is very useful and done all the time. There are plugins and examples for everything the OP wants to do, and if he likes vim he will probably like these better than clicky IDE.

        • by Abcd1234 (188840)

          Agreed, ViEmu makes Visual Studio *far* more pleasant to work with. You get all the advantages VS provides (IntelliSense, in particular), plus a fairly complete Vim emulation.

    • +1 for netbeans with the plug-ins you want.

      For years I kept trying IDEs ... and hating them. It always seemed like they got in the way more than they helped.

      I started using netbeans for some Java work I was doing when it was called the "Java One Studio" or something like that ... really liked it. Since then it's only gotten better and I pretty much use it for everything that isn't a 5 minute job.

    • by oren (78897) on Wednesday December 30, 2009 @04:49PM (#30599334)
      There's also http://www.viemu.com/ [viemu.com] (it costs $$$, but if you are forced to use VisualStudio...) and http://ideavim.sourceforge.net/ [sourceforge.net] (free plug-in for IntelliJ IDEA). And for people who use EMACS as their IDE, there's http://www.emacswiki.org/emacs/ViperMode [emacswiki.org] :-)
    • viPlugin isn't free as in speech or free as in beer either. :(

      • But it's cheap (~USD$20) and made by a single developer who gladly will give you the source and accept bug reports directly and even fix them occasionally. It's a pretty good deal.

  • Emacs! (Score:5, Funny)

    by Saint Aardvark (159009) on Wednesday December 30, 2009 @03:35PM (#30598320) Homepage Journal
    • Re:Emacs! (Score:5, Funny)

      by rainmaestro (996549) on Wednesday December 30, 2009 @03:49PM (#30598558)

      Yeah, it's a great operating system. If only it had a decent text editor =)

      • by Splab (574204)

        Well since it supports VI binding I guess it has a decent editor.

        • by V!NCENT (1105021)

          But why does anybody still wants to run Vi?

          Ofcourse there are some die hards here that read /. with lynx, but anybody that views /. with a graphical web browser, like FireFox or Konqueror has a computer that's powerfull enough to run Emacs at insane speed...

          Back in the day Vi was lightweight and all that, but since that's no longer the problem... why? Why? For the love of God... WHY?!

          Must be the people that learned it Back In The Day (TM) and sticked to what they learned, but is there any reason why new kid

          • It's nice to learn vi if you use *nix systems because it seems to be installed on almost everything, making it very convenient. If that's all you have and you don't know it, hilarity ensues. :-) Or frustration. Whatever.

          • VI is part of the POSIX standard. Knowing how to use VI is thus important, as any UNIX/Linux system will have VI, while Emacs might not be installed.

            Myself, I use Ed.
          • by tempest69 (572798) on Wednesday December 30, 2009 @08:50PM (#30601538) Journal
            if I want line 200 I type in 199j from the top..

            if I want to change all of the X to - in an amino acid sequence line I type :s/X/\-/g

            yea.. I'm sure that emacs can do it too.. But once all that brainpower is invested, theres no way I'd bother with emacs.. It's like a secretary changing to dvorak after she's hit 200wpm

            vim is fast, powerful, user friendly, and quite picky about it's friends.

            Storm

          • by Draek (916851)

            Because it's the only editor thus far whose interface has been designed towards terseness. That everything in Vi can be done only with a few, short commands is not only a lifesaver when you're stuck with a slow-ass terminal, as it was originally designed to be, but also a great productivity boost in everyday usage once you learn to use it.

            Emacs gets often compared to it because, although its focus is clearly on power rather than speed, it's still far superior to modern-day editors that aim towards learnabil

  • I think there's an app for that on the Emacs operating system.

  • Qt Creator (Score:3, Interesting)

    by vbraga (228124) on Wednesday December 30, 2009 @03:36PM (#30598330) Journal

    Qt Creator [nokia.com] has Vim bindings. It's possible to create non Qt applications messing with settings on the .pro file.

    • Re: (Score:3, Interesting)

      Qt Creator's Vim bindings are not complete yet. For example keystrokes like yiw or diw don't work. Recording macro's (which for me is Vim's killer feature) also doesn't work. That aside it's a great piece of software. Actually, it is the only IDE that I find usable on Linux.
    • At least in 1.3, you can now use CMakefiles (which I use) or regular makefiles as well. The only downside is that it IS made for C/C++.

      That said, it is by far my favorite IDE...made the switch from a simple text editor a year ago and haven't looked back...and that's after trying Eclipse....

  • by Paradigm_Complex (968558) on Wednesday December 30, 2009 @03:36PM (#30598336)
    Could anyone explain the reason why simply extending vim is being ruled out? Why is it considered a "mortal sin"?
    • by frank_adrian314159 (469671) on Wednesday December 30, 2009 @03:48PM (#30598542) Homepage

      Because, if you allow vim to be extended, it may accidentally become an operating system [wordaligned.org].

    • by Maxmin (921568)

      Could anyone explain the reason why simply extending vim is being ruled out? Why is it considered a "mortal sin"?

      Extending vim is normal practice -- where'd you get the idea that it's a sin?

      Check out some of the plugins for vim [spf13.com].

      That said, I've found vim plugins to be not unlike emacs extensions, in that when one fails, it's probably gonna be up to you to suss out why and patch it.

  • KDevelop4 (Score:4, Informative)

    by DMiax (915735) on Wednesday December 30, 2009 @03:38PM (#30598382)
    I know it's not out yet, but the katepart (the editor widget) already has a VI mode that supports most of the original commands and modal editing. Worth giving a try: the betas are getting better and better...
  • what about GVIM? (stupid answer)

    Here are some VIM eclipse plugins:

    http://vimplugin.org/ [vimplugin.org]
    http://eclim.org/ [eclim.org]

    Though I tend not to like these since the native plugins for whatever you might be developing inside eclipse tend to be more complete.

  • by Anonymous Coward on Wednesday December 30, 2009 @03:42PM (#30598458)

    Umm vim supports plugins, and there is of course a GDB one.

    Also there is an integrated command line called :!
    or if you want to get more fancy you can open multiple buffers and :%!whatever to replace it with output

    Vim easily integrates with the shell. You just have to know how to use both.

    • Re: (Score:3, Interesting)

      by Abcd1234 (188840)

      Umm vim supports plugins, and there is of course a GDB one.

      Sorry, no. I absolutely adore Vim and use it as my primary editor, but when it comes to debugger integration, Vim sucks. Hard. Decent GDB integration with Vim requires patching Vim. Why? Because Vim has *terrible* support for multiplexing interaction between the user and external processes (well, unless you're willing to settle with gvim, in which case clewn can use the NetBeans interface). ie, Vim is simply not architected to properly handle

  • by omar.sahal (687649) on Wednesday December 30, 2009 @03:42PM (#30598462) Homepage Journal
    Will this [pida.co.uk] do.
    I'm not entirely sure of not extending vim but "not wanting to give up the efficient text editing capabilities of VIM" could mean.

    PIDA is an IDE (integrated development environment). PIDA is different from other IDEs in that it will use the tools you already have available rather than attempting to reinvent each one. PIDA is written in Python with the PyGTK toolkit, and although is designed to be used to program in any language, PIDA has fancy Python IDE features.

    Its, a IDE and will allow you to use vim as well.

    • by HTH NE1 (675604)

      IDE (integrated development environment)

      Congratulations on being the first (and apparently only) poster to define what IDE means in this context!

      But I'll have to penalize you a point for only doing it by quoting someone else defining it.

      I'll leave it to someone else to backronym eSATA to refer to a development environment.

      ("The term Advanced Technology Attachment is kept, but is an anachronism. The last IBM PC/AT is now nearly dead, and has been for many years.")

  • I haven't tested it thoroughly, so I don't know how much of the VI command set it implements, but Komodo IDE has a 'vi' mode, and I believe it would fulfill your other requirements as well. (As a plus, it's fully cross platform, so you can use it everywhere)

  • by dkleinsc (563838) on Wednesday December 30, 2009 @03:46PM (#30598510) Homepage

    Try Emacs.

    Seriously. The integration with gdb, gcc, etc is where Emacs really shines. Yes, the Control-Meta-cokebottle commands are a bit annoying, but there's worthwhile tradeoffs there.

    The first post was also quite useful. And to be fair, I like vim too.

      • Ed is a perfectly good editor. And it IS the standard.

        (.)a is append mode, with the line address before it. eg: "25a" enters append mode at line 25.

        (.,.)c is change mode. the lines are deleted, new lines appended in their place. eg: "24,26c"

        d works like c, but just deletes the lines.

        i is insert mode.

        typing a single "." on a line alone exits the editing mode.

        w writes the file out.

        q exits.

        Ed does have a nice manpage, and can be powerful enough for most basic tasks.
    • Re: (Score:3, Insightful)

      Try Emacs.

      Seriously. The integration with gdb, gcc, etc is where Emacs really shines. Yes, the Control-Meta-cokebottle commands are a bit annoying, but there's worthwhile tradeoffs there.

      The first post was also quite useful. And to be fair, I like vim too.

      Been there, done that, emacs, x-emacs, emacs with the GTK stuff. Am sticking with vim. I've been using vim since 1992-1993, back on my Amiga.

      • by Splab (574204) on Wednesday December 30, 2009 @04:50PM (#30599352)

        I've only been using VI for 10 years, but still is almost impossible for me to work in any editor now where there aren't modes.

        What made me choose VI over Emacs back in the day [tm] was the fact that my hands aren't build for the ctrl voodoo used in Emacs.

        • Re: (Score:3, Insightful)

          People often say that the control key combinations are difficult in Emacs, but this is only so if 1) you don't touch-type and 2) your keyboard is older than 20 years. On a modern (=post 90s) keyboard, there are two control keys and two alt keys, one for each hand.

          Here's how you should type a typical Emacs chordal command: use both hands. For example, M-x is typed by pressing the x with the left hand, and the ALT with the right hand. This is touch typing 101. (Similarly, you would type a capital letter by

          • by belmolis (702863)

            Two control keys? Don't you mean three? Real programmers all redefine the evil Caps Lock as a control key.

          • Re: (Score:3, Informative)

            by Bluesman (104513)

            M-x viper-mode

            That's the only emacs command string you ever need to know.

            • by pongo000 (97357)

              M-x viper-mode

              That's the only emacs command string you ever need to know.

              Sadly, it doesn't seem to do vim. For instance, C-v (for block edit mode) fails miserably.

          • by Splab (574204)

            Odd, I do touch type and my keyboard is about 2 years old, guess I'm not "people"... (rtard).

            While you might have no problem hitting ctrl with your girly hands, us guys with big hands will have to move and twist our wrist in order to get down to ctrl, key, which is a fairly uncomfortable thing to do, and doing it lots of times every hour is going to kill my wrist - having big hands means escape is in a natural position for me while alt and ctrl are far away from my fingers.

            • While you might have no problem hitting ctrl with your girly hands, us guys with big hands will have to move and twist our wrist in order to get down to ctrl, key, which is a fairly uncomfortable thing to do, and doing it lots of times every hour is going to kill my wrist - having big hands means escape is in a natural position for me while alt and ctrl are far away from my fingers.

              It's probably yet another problem that can be traced back to Bill. I started seeing the mutant keyboards bundled with his "OS". The ctrl key, which gets used a lot, used to be where it could actually be reached, but that position defaults to the useless capslock key. Probably until 2003 or 2004, one of the first things for me to do on a new account with such a keyboard was to remap the position of the control keys.

              I get too much pain in the wrists to try it your way, by contorting the wrists, to reach

            • by dwater (72834)

              This brings up an interesting (to me) point...

              After I moved to Finland, I was amazed how many people here used Emacs compared to vi(m). I was trying to think of a good reason and the only thing I could think of was the arrangement of keys on the Finnish keyboards makes vi(m) much more awkward to use. For example, '/', which I use very often, is shift-7.

              I guess the same might be true of many other countries' keyboard layouts (there are quite a few German emacs users too).

      • by Domini (103836)

        Interesting enough I knew Emacs (in the form of Micro Emacs) way back in 1987 on my Amiga, but after I understood what vi(vim) was about I've used that instead and never looked back.

        So much faster to run and edit, and installed everywhere.

        It does however suck at integrating a full development environment. Something Visual Studio and eclipse shines at (and even Emacs is know to handle better). Still when I have a lot of typing/editing to do and less debugging I'll use vim.

    • Real programmers... (Score:2, Interesting)

      by meuhlavache (1101089)
      ... use butterflies ! http://xkcd.com/378/ [xkcd.com]
  • Gvim (Score:4, Insightful)

    by theinvisibleguy (982464) on Wednesday December 30, 2009 @03:47PM (#30598536)
    Gvim is pretty good, it might still be too lean for what you are asking for, I would say it's more an intermediary step between vim and a big gui ide.
  • A lot of people use stuff like MiniBufExplorer or Taglist or Vim 7's built in OmniComplete. Everything an IDE can do, Vim itself can do a lot better.

    • by Abcd1234 (188840)

      ROFL! If you think OmniComplete, even with ctags or cscope, is anywhere *near* as capable as the intelligent completion available in Eclipse, VisualStudio, or any other comparable IDE, you're either horribly ignorant, or lying to yourself. And the idea that it's *better*? That's beyond laughable. And I say that as a diehard Vim user.

  • EMACS .. (Score:3, Informative)

    by deego (587575) on Wednesday December 30, 2009 @03:51PM (#30598590)
    EMACS with viper mode :)
  • when i get tired of typing i'll do a command line like

        vi +100 program.c ; make; ./program arg1 arg2 etc

    and then use command history (up arrow+return) to repeat it

    it ends up being as fast as an IDE and it's much more flexible.
    most importantly to me it works inside an ssh or telnet session with any old unix box.

  • Switching TO Vim (Score:2, Interesting)

    by apharmdq (219181)

    I'm currently working on switching away from my IDE to vim. There are plenty of plugins to put it on par with most IDEs, and honestly, a lot of the stuff in modern IDEs is just fluff. As for loading down Vim with all the extra stuff, I don't have the plugins autoload, but rather load after I run a script to transition it to my own "IDE Mode." This keeps Vim small and fast when I'm doing ordinary editing. I'm still in the transition phase, so I may not have seen all the disadvantages yet, but as far as I

    • by Simon80 (874052)
      You can save yourself from having to decide when to load these plugins by loading them for specific file types. You can make files like ~/.vim/ftplugin/filetype.vim (i.e. c.vim, cpp.vim, python.vim) that contain a few lines to source your script when those filetypes are loaded. You may need to set a variable to ensure that the sourcing happens only once.
  • Extend Vim (Score:3, Insightful)

    by Finder83 (829130) on Wednesday December 30, 2009 @04:04PM (#30598760)
    Mortal sin? First, get over your ridiculous predisposition against extending vim. Vim is built to be extended, and extending it can make it much more useful as a tool and not just an editor. If you're good enough in Vim to prefer it as a text editor, then make it comfortable as an environment. There are some amazing extensions for vim, that for me at least, make me much more productive than using an "IDE". Fuzzy file finder, exuberant ctags with taglist, minibufexplorer...
  • by fm6 (162816)

    Extending VIM with these capabilities is a mortal sin

    Then the worst sinners are the vim maintainers themselves. Even with just the default config, vim is full of IDE features.

  • You don't have to extend VIM yourself. What's wrong with using plugins? There are many interfaces for debuggers and other things on the VIM website. Extending with plugins might just be easier.

  • by nomadic (141991)
    pico!
  • I would be happy with just a project pane, like Textmate has, that doesn't look like ass. I love VIM, but that's pretty much the only thing holding me back from dropping Textmate.

  • Wing IDE (Score:2, Informative)

    by SkelVA (1055970)
    If you're doing web work, primarily python, Wing IDE [wingide.com] has great VIM support. It supports custom vim configurations and all of the good stuff. It has a free version, but I threw down some cash (d to get a sweet integrated debugger and test-running capabilities. I found it superior to both Netbeans and pydev on Eclipse, but both of those also support VIM text editing (with plugins). Basically, pretty much every decent python editor I've tried has supported vim either natively or via plugins.
  • KDevelop has a VIM mode for its text editor, I believe. Under Settings|Editor|Text Editor. Or at least it used to, a long time ago. You might need to install it as a separate package, or your distro might not package it (silly thing).
  • Vim has so many IDE features (autocompletion, ctags, syntax), hundreds of plugins that let you customize your environment.. snippets, Doxygen, debugging, compiling.. I'll only suggest you one thing: better concentrate on improving your Vim environment than searching for any other tool that embeds it. Use Vim with GNU Screen after all, that'll give you true IDE experience.
  • Edit your files with VIM as per usual. Also keep them open in your GUI IDE of choice. Most IDEs detect file changes and will either ask you to reload the files or you can sometimes set options to automatically reload. Now you have the best of both worlds on top of the same source code files - you have all the features of each solution. Also set up your GUI IDE to launch VIM on a source file using a keystroke.
  • ... I was kind of wondering why the hell terrorists needed VIM on an *IED*

No hardware designer should be allowed to produce any piece of hardware until three software guys have signed off for it. -- Andy Tanenbaum

Working...