Quote:Original post by Arild Fines
Quote:Original post by pinacolada
Quote:Original post by Arild Fines
Quote:Original post by crupp but the coolest feature is (IMHO) that you can use those thousands of vim-features without using the mouse ever. That way your hands stay on the keyboard, and if you are able to type fast you'll always be faster then if you switch from keyboard to mouse, make some clicks, then switch back to the keyboard etc. It's faster, and better for your forearms.
|
However, actually typing code is a very small part of the development process. Debugging, refactoring, navigating the code(which vi is really bad at) takes up way more time. |
You are right that typing the code is the easy part, and that debugging, refactoring & navigating takes way more time.
But I totally disagree with that next thing, I think that what Vim is really GOOD at is the navigating and refactoring.
|
Then we have a complete disagreement of what navigation and refactoring actually means. For my needs, those two things cannot be accomplished unless the editor has access to some kind of parse tree for the source code being edited. vim is totally stupid that way - it only sees and understands raw text. It has no way of understanding the real semantics of the code. IDEs like Eclipse and Visual Studio .NET actually compiles the code in the background, generating a parse tree which they use to provide navigation, on-the-fly error reporting, intelligent renaming, flow analysis and so on. vim doesn't even come close to providing such services. |
I don't think an editor needs to deeply parse the source code in order to provide enough useful features.. you can get pretty far with an editor that's ignorant of such things.
Vim has ctags, makes it really easy to "follow" function calls downward. The tag thing even keeps a stack, so when you are done exploring tags downward, you can pop back up. The only major shortcoming to ctags is that it can't figure out the difference between two functions/variables with the same name, so it will prompt for clarification.
I have a script called taglist.vim, which creates a window that looks and behaves just like the "ClassView" browser in VS.
Vim has folding. I also have a script that does function-wise folding, so if I am looking for a certain place in code, the typical sequence of actions is this: activate the function-wise folding (so now the implementation of each function is hidden, only the function names are shown, and the entire file is only 1 or 2 screens high), navigate the cursor to the function I want, then un-fold only that function. I could also use the taglist to navigate like this, but I prefer navigating in the file itself.
I don't think on-the-fly error reporting is that great, it only takes a few seconds to run the compiler. This is probably more valuable when you're working on very large projects.
I don't know what you mean by "intelligent renaming", but it doesn't sound all that useful.
The only feature from VS that I truely miss is the pop-up list of object members (intellisense).