|
I think you are missing an important aspect: VS can help you in mental tasks the same way a jackhammer can help more than a pickaxe in physical tasks. Sure, the pickaxe is simpler, but it will take you a lot longer to break that concrete with a pickaxe than with a jackhammer, because of simple human limitations. Similarly, refactoring and advanced code navigation support takes a while to learn how to use, but once you do, it empowers you through technology to quickly do things that your mind would take much longer to do by hand. For example, say you want to extract some code from the middle of a function into a separate function. With vim, you would generally have to manually move the code, write the new function header, then start to painstakingly inspect the code to identify the parameters to pass between the two. You will probably make mistakes and have to wait for the compiler to find them. All in all, assuming it's a bit of hairy code, it might easily take you more than an hour to get it working. In VS, you would type ctrl-r, ctrl-m (Refractor, extract Method) and it would automatically detect all of these for you, pop out a dialog box, you'd enter the new function name, Tab, param name, tab, param name etc, and enter when you're done. Maybe 5 minutes all in all, assuming you also do some ctrl-r, ctrl-p (refractor, parameter) afterwards to extract some larger expressions back into the original function. Similarly, you have things like 'analyze data flow to...' which can find all places in your program where a particular value can be written to, and do that recursively until you get to the original source. Same thing - this can be done by hand with a series of finds and so on, but an advanced tool will just help you do it faster. But, just like with advanced editing in vim, you need to take the time to learn the tool until you can get the most out of it. Same as the first time you enter vim you're likely to fumble to even be able to exit, you can't expect to be productive in VS if you don't take the time to learn what it can do for you. |