5 ms·
Intellisense, in-line code documentation, debugger, unit tests, refactoring, file browser/project support, find usages/jump to definition, full project intellig
by eradicatethots 9y ago
Intellisense, in-line code documentation, debugger, unit tests, refactoring, file browser/project support, find usages/jump to definition, full project intelligent search.
Even where vim supports these, it’s support is far weaker, less reliable, and much more painful to set up than IDE support. Among devs serious about productivity, it’s hard to imagine choosing vim.
- nextlevelwizard 9y ago>in-line code documentation What do you mean by this? Like folded comments? >debugger So, gdb? >unit tests You can write unit tests in vim. You can also run them, obviously. >refactoring Again, what do you mean? Now it feels like you are just listing stuff or maybe I just don't know what refactoring actually means. >file browser/project support Granted the build in file explorer is pretty stupid, but the standard `:find` works perfectly well, so as long as you are not just randomly browsing, I don't see an issue. >find usages/jump to definition Vim has support for tags. I use jumping between them every day. >full project intelligent search What is this? Just grepping for stuff on whole repo or something more interesting? >Even where vim supports these, it’s support is far weaker, less reliable Only if you haven't used the features before. I definitely do not buy the "far weaker and less reliable" part. >much more painful to set up than IDE support. I am not arguing that vim does not have a higher learning curve than your average GUI editor/IDE, but are you seriously suggesting that you have not configured a single thing in your IDE? If you have, then your point is moot. I consider my .vimrc complex, but it has been build from scratch over the years as I've wanted more functionality. >Among devs serious about productivity, it’s hard to imagine choosing vim. Meh, sure depends on what you are doing. I rather have a tool which I can adapt to my needs than having to hunt down new tool for every project/language. You ready for that killer feature that your IDE doesn't have? Try being productive on another machine. Over an SSH. EDIT: I just noticed that I completely dismissed the "intellisense". Completion is build in by default. I can't remember if member list is, I use some tiny script that formats them all nice and neat.
- isthisnagee 9y ago> >refactoring > Again, what do you mean? Now it feels like you are just listing stuff or maybe I just don't know what refactoring actually means. Agree with all your points. For this one, some IDEs support extracting lines of code into a method/function, figuring out what's an argument and stuff like that. It's a pretty nice feature that I don't believe is in vanilla vim, but it's something I can imagine writing a vim plugin for it.
- yazaddaruvala 9y ago>>refactoring >Again, what do you mean? Now it feels like you are just listing stuff or maybe I just don't know what refactoring actually means. It allows you to inline / rename variables and methods. It allows "safe deletes". It gives suggestions for improving code (i.e. if a best practice wasn't met or if there is some obvious improvement). "Move" or "extract" snippets of code into other/new files. If you haven't used an IDE-like's refactoring capabilities I'd be surprised. Meanwhile, almost all of this is likely possible with the correct set of VIM plugin. I've just never had the time or energy to go find plugins, ensure they individually work as advertised, and work well all together, when I can just download Intellij and be extremely productive. FWIW, I sync my laptop's directories to my remote dev box, so I rarely develop on anything but my macbook, but I do use Intellij with VIM bindings, so when I log into a remote machine I'm still quite productive. P.S. I prefer VIM for Ruby / JS / Config files, etc.
- eradicatethots 9y agoFor intellisense/documentation it means having method names, arguments, types, and short summaries pop up as you’re typing. E.g “print” might complete or printf and give you all you need to know to use it on the spot. While vim has autocomplete, I’ve never seen this documentation feature (even typed argument listings) and it’s extremely valuable to me. Tags require a lot of manual work, so I consider them in the “worse” category of vim support for ide features. Also, you shouldn’t mention gdb because the Ux is awful next to IDE integrations. Really. There’s no comparison here. For unit tests ides can run individual unit tests with a single click. Again, vim may support some of these features, but it’s UX is awful next to IdE Ux. Also, I’ve been able to use VSCode over sftp, although it’s true vim can be pretty nice here. Personally don’t want to cart around a whole folder of plugins on top of vimrc, sounds like a pain.