Confession About VIM
I’ve gotta admit. I’m not as much of a Vimmer as I wish I was.
For all my lack of it, the Vim I use is more of a “modern Vim” where the emphasis is much more on the use of plugins to enable stuff to get done. (As an example, using the YouCompleteMe plugin to get some pretty nifty autocompletion).
Recently I was tasked with working on some JSON for the project “teammates”.
I was able to take the time to get a bit of familiarity with Vim’s features of (syntax) code-folds, combined with a JSON plugin which recognised JSON as a special syntax, I felt I was much closer to using Vim as Vim should be used.
What I mean is, I know and feel that Vim is an extremely powerful text editing tool.
But I also feel it’s the kind of tool where one has to want to know what the best way of doing something is; and to take the effort to learn how to do that.
So, shamefully, I’ve not been using Vim to do things which I’d quite happily do in other editors. (e.g. I switched to Eclipse to perform a search of files, rather than using something like ack.vim).
Is Vim hard to learn then?
I think there’re a lot of cool things Vim can do which are not hard to learn. (The “physics” of text thing like “Change Inside ()” as ci( is an example of such power).
But just the same as any tool/text-editor, there’s a lot to get familiar with. (Though with Vim, there’s probably more one could learn).
Vim is also guilty of being not setup right out of the box.
I suppose things like Janus or Cream help with that. But once familiar with customising.. it’s its own kind of fun. :-)
So I’ll have to take the time to marginal notes of things I wish I could do better in Vim, and take time to deliberately practice so as to get the skill.
- One example would be, say, Vim’s Fugitive. (Lookup the screencasts). This seems like the tool you dream of being able to use when dealing with Git / VCS. (But I suppose also this is part of what I’d call “modern Vim” – for what it’s worth, btw, it doesn’t bother me that this “modern Vim” isn’t a legacy program, since I’m not writing on a legacy machine :-) ).