I got pretty proficient at vim using basically the defaults (I added tabs to spaces and tab width to 4 spaces, and auto/smart indent in the .vimrc). These are the keys I use regularly. If you can memorize these, you can use vim proficiently:<p><pre><code> h/j/k/l (movement keys)
i (insert mode)
esc (leave current mode/go to default state)
u (undo)
>> / << (indent, unindent)
dd (delete line)
yy (copy line)
p (paste)
v (visual mode, used to highlight stuff)
gg (go to beginning of file)
G (go to end of file)
r (replace the char under the cursor with the next char entered)
% (jump to next paren/bracket, or if on a paren/bracket, jump to matching paren/bracket)
w (go to next word)
dw (delete word)
cw (change word (deletes the word then goes into insert mode))
A (append (goes to the end of the line and into insert mode)
0 (go to beginning of line)
$ (go to end of line)
/some_word (searches for some_word, hit n to jump to the next occurrence)
?some_word (searches for some_word, in reverse direction)
</code></pre>
Common commands:<p><pre><code> :%s/regex/replacement/g (replace regex matches with replacement)
:q (quit)
:q! (quit without saving)
:w (save)
:wq (save then quit)
:x (save then quit)
:set blah (turns on setting blah)
:set noblah (turns off setting blah)
</code></pre>
Most vim commands you can stick a number N before to execute N times.<p>e.g. 5d deletes 5 lines. 5y copies 5 lines. 5> indents 5 lines. 5j jumps down 5 lines. Some common command combinations:<p><pre><code> %v%> (jump to next bracket, go into visual mode, jump to next bracket (highlighting everything in between), then indent it all)
ggdG (jump to top, then delete everything to the end of file, (clears a file))
ddp (deletes a line of text and then pastes it (below where it currently it), thus this transposes two lines)
</code></pre>
You can see how you quickly develop strings of commands you rattle off by chaining basic commands together.<p>EDIT (joke):<p>Q. How do you algorithmically generate a cryptographically strong random string?<p>A. Put a newbie in front of vim.
I use Vim but I don't understand why people try to force themselves to use it. If you are comfortable with another editor, then go ahead, keep using it. Everyones treats Vim as if it's some hallowed apex of programming ability, and that eventually you have to be weaned from your inferior Sublime or Textmate usage. Sure, Vim is awesome, but the idea that you _must_ sooner or later learn it is wrong. Unless of course you really are interested in Vim for what it offers and not just for its reputation.
In the last 15 years I remember having used as my main editor: TextPad, Vim, KEdit, Textmate, Vim (again), Sublime Text. I consider myself a decent vim user, but went back to non-modal editors, they feel more comfortable to me. My muscle memory works best with "synchronous" keyboard shortcuts (ctrl-alt-shift-whatever) rather than "fluent" vim-style commands like ciw, ct" etc, that require a mental context switch.<p>It's important being able to use vim, because sooner or later you'll edit some files on a remote server, but I don't understand the enthusiasm of so many people for it. Vimscript is horrible BTW.
I highly don't recommend using a starter kit, and particularly Janus. Janus started out ok but quickly morphed into an amalgamated mess of crap.<p>The only thing I recommend is Pathogen which keeps addons modular. From there only add things to the baseline as needed.
Try the Vimium plugin for Chrome for a bit of fun.<p><a href="https://chrome.google.com/webstore/detail/vimium/dbepggeogbaibhgnhhndojpepiihcmeb?hl=en" rel="nofollow">https://chrome.google.com/webstore/detail/vimium/dbepggeogba...</a>
Read Practical Vim published by the Pragmatic Bookshelf. You'll go from n00b to "pretty good". Takes a long time to work your way through the text, as it's both thick and very dense, but every single page will empower you further.
I wonder what the author didn't like about sublime text's vintage (vim) mode? I have not used vim, but i have been using vintage mode for about a month now and really love it. I grab my mouse occassionally, but mostly stay out of insert mode and navigate with movement keys. Plus I still have my sublime text environment that I've built up for the past 2 years.<p>I don't think I could've made it this far by diving in head first. Like it or not, I have to get work done, and when I couldn't get a motion to work right or didnt know the best way to do something, I could fall back on sublimes regular tools.
I wouldn't recommend using a vim distribution. They have some good features but they also tend to add bloat to your vim and make it slow. They also impose a certain workflow which might not be suitable for everyone. I have been using vim full time for more than an year now, I started with an empty vimrc. Now I have about 200 lines, and I added all of them on a need basis. Text editor is the most important piece of software in my workflow (or probably any developer's workflow), so I want it to behave exactly like I want.
I would suggest not to use anyone's configuration, add config/plugin as per your need. And yes, don't forget to take a look at learnvimscriptthehardway.stevelosh.com
First mistake: starting with someone else's config.<p>Second mistake: using a distribution.<p>Third mistake: forking a distribution, itself built by amateurs, after only three months and advertizing it on the net.<p>Seriously, when did parents stop teaching the value of patience (among other values) to their kids?<p><i>You</i> are the one in charge of <i>your</i> config, people, not some random guy on the internet.
So many people talk about learning vim, vim philosophy, getting proficient at vim, changing your workflow so that you can use vim better. You what this sounds like? A cult.<p>Vim is a (surprise surprise) text editor, not a way of life. It's perfectly ok not knowing how to use vim and being put off by how awkward it feels. It's perfectly ok to use notepad++ or sublime text or whatever else you are comfortable with.<p>To my knowledge nobody gets paid to use vim instead of some other editor; money comes from lines of code. It does not matter that you use vim, it does not make you a smarter person or better programmer (I should know, I often use vim at my work place).<p>On the same note, it does not matter how cool you think you are when you manage to persuade git to do some complicated thing in a two liner command which could be achieved in svn or hg in two words, you are just being silly. Being proficient at vim/git when your job doesn't require it is like being able to rotate your left and right eyes simultaneuosly - one clockwise, the other counterclockwise. It's very funny/interesting, but utterly useless. Forcing yourself to learn vim for vim's sake or because you read on the internet how cool vim is and how 3l1t3 vim makes you is one of the things you'd be better off avoiding. Again, I should know.<p>Seriously, don't drink the Kool-Aid.
I don't understand the hoopla about editors. It takes me eight hours to write a half page of code. That half-page is well-understood, bug-free, and accomplishes the mission. The more I learn, the less I write. I don't want tools to help me write faster. I want tools to help me understand what it is I am writing.
I've been a Vimp too... I knew about vim for years, sometimes trying the switch, but it never stuck.<p>By now, it did stick. What finally convinced me the most is that a lot of really smart people not only use it but have developed a fierce loyalty to this text editor.
One of the best resources I used to build up my vim customizations was probably this video <a href="http://www.youtube.com/watch?v=xZuy4gBghho" rel="nofollow">http://www.youtube.com/watch?v=xZuy4gBghho</a>.
It's got a lot of good stuff in it
I've been using Vim for a few weeks now, and the biggest time saver is not having to use FTP or Mac Finder. I can do everything from the terminal now.