5 ms·
>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 ru
by 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.
- nextlevelwizard 9y agoThe documentation thing exists, I just find it distracting, so I don't use it. Tags just require you to have something like exuberant-ctags installed, then you can just run `!ctags -R .` from vim and you are golden (only needs to be done as you create more classes/functions/methods/whatever) Most shit are just GUIs or wrappers for gdb. There are plenty to choose from if you so choose. If your unit tests take super long that might be a sign they are bad. Also if you can run a single unit test in some way, you can do it with vim. Unless your IDE does some JIT magic on the side that for some reason can not be replicated in terminal. >it’s UX is awful next to IdE Ux. I don't like tomato soup, so you are wrong! >Personally don’t want to cart around a whole folder of plugins on top of vimrc, sounds like a pain. I have grand total of 3 plugins, none of which are required for me to do work. It depends on whatever you want, I've seen many people use ton of useless plugins which either reimplement something already present or just try to do things "the old way I'm used to" instead of just learning to do the thing in "vim way"
- eradicatethots 9y agoI suppose it’s possible to get a pretty good env with vim (you’re losing a lot without a mouse), but damn it’s a lot of work to get there... Before you tell me how it’s totally not, all the things you listed require specific knowledge, configuration, and then custom non conflicting keyboard shortcuts (unless you like manipulating your tools 10x slower than ide users). For me it’s just not worth the work. Vim is best for me in its default state, and I can still take advantage of it being available everywhere that way. Ides make crazy configured vim portable by being the default state of the ide and downloadable to any pc (with limits) from the internet. It’s a much lower maintenance approach for me. I’m glad vim works for you, but I find it hard to believe it’s a very practical choice (unless you’re extremely attached to your custom setup). Also vim seems less discoverable to me. If something’s not a keybind you already set up, you need to look up plug-in docs, or tab through all the hundreds of possible commands. In ide land you open your command Paulette and type a relevant word or plugin name and everything you could do along with keyboard shortcuts is displayed. Not to mention it’s displayed in a way that doesn’t disrupt what you were already looking at. That’s a nice advantage of a GUI. When I picked up vim and committed to it it’s because I read online it was better and probably thought it made me more badass, but eventually after a few years I returned to IDEs, because they’re genuinely better suited (imo) for programming. Vim is a headache for a second rate ide, and continues to be headache to use as you go (ctags for every language? Official language plugins? ...) I get you like vim, but using vim seems stubborn to me.