• addie@feddit.uk
    link
    fedilink
    arrow-up
    11
    arrow-down
    1
    ·
    11 hours ago

    Vim is my preferred ‘IDE’ for C++, Python, Bash, and general configuration file editing. It’s got some big pluses:

    • its text editing is superb once you’ve mastered it, but that’s a small part of its benefits when used as an IDE, and ‘Vim mode’ in other environments kind of undersells what else it can do

    • Vim has some great plugins for development. YouCompleteMe is awesome for predictive completion and showing docs, but NerdTree for file management and TagBar for showing structure are amazing as well. They’re all very configurable and they get out of your way.

    • Vim lives in your terminal window, so you can do splits and tabs using whichever terminal you like. Kitty is very fast and configurable and keeps out your way. Being able to have multiple tabs of Vim open, a tab for compilation, a tab for debugging, a tab for version control, a tab for man pages, and being able to flip between them without taking your fingers off the keyboard makes for a very fast workflow

    • Vim makes it very easy to edit binary files and be precise about whitespace changes, so it’s easy to make a minimal change for raising a PR.

    If you assign a hotkey to run a macro in Vim, then that can be made very flexible - saving and formatting all open windows, then invoking CMake to do a build and CTest to run all your unit tests can be put on a function key if you like. Trying to tell Eclipse to “just run CMake to do the build” seems to be an exercise in frustration; so many IDEs are terrible at “just getting out of the way”.

    Work pays for an IntelliJ licence for using Java. Java is so unwieldy without a proper IDE that it’s hard to code in it without it. I certainly don’t love it, though, and they seem determined to make every new version worse with bizarre new features. Flexible minimalist editing with configurable plugins is all that you really need, and on that basis Geany looks pretty good - will give it a try.