Learn Vimscript the Hard Way
learnvimscriptthehardway.stevelosh.com
learnvimscriptthehardway.stevelosh.com
VIM with only lua, or, since regexps are weird in lua, guile, or heck, even a fast ECMAscript but garrenteed to be the same on all platforms would be great...
I've pondered the idea of a "VIM redux" project, not being backwards compatible, but throwing out old cruft, such as vimscript, "embed all the languages but unequally so you can never tell what plugins a system will support!", vi-compatible default mode, and put on some different defaults like syntax highlighting, etc.
I don't think I'll ever like vimscript... so maybe I should buy the book. :-)
btw i disagree with you a bit. The best resource to learn vimscript is the sources of popular vimscript plugins.
The next best thing is steve's book, which is brilliant.
Outside of that, http://yanpritzker.com/2011/12/16/learn-to-speak-vim-verbs-n... has a nice explanation of the editing worldview, which ties in with Steve's quote in http://learnvimscriptthehardway.stevelosh.com/chapters/16.ht..., "The idea of operators and movements is one of the most important concepts in Vim, and it's one of the biggest reasons Vim is so efficient. We're going to practice defining new motions a bit more, because extending this powerful idea makes Vim even more powerful."
Check out http://www.moolenaar.net/habits.html, http://stackoverflow.com/questions/1218390/what-is-your-most..., and maybe http://vimcasts.org/episodes/archive?
I've been using it for about a decade, so I think I've lost the beginner's mind to evaluate whether these are really the right entry points. Lots of people are passionate about vim, though; some googling should find you the exercises that will help you the most.
A set of crazy tips that made me learn to love the g commands: http://www.rayninfo.co.uk/vimtips.html
I believe I went to that from http://vim.wikia.com/wiki/Vim_Tips_Wiki, which isn't as fun to navigate as I would like it to be.
If you want to actually learn vim, ditch janus and all the plugins when you start. Start by going to a shell and typing 'vimtutor'. That will get you started. Then build your own ~/.vimrc by scratch by adding some useful options such as:
set number
syntax on
filetype plugin indent on
For other options, you can search around the internet, particularily other people's dotfiles and see what they put in their own vimrc and you can freely take if you like what you see.
and then you can experiment with plugins. You will gain a much better understanding of how they work, what they do and you will be proud of yourself because it's your own personal vimrc and you know every single line that is in it.
For myself, I knew core-vim pretty well, and was coming back to it after taking textmate and sublime text for a spin. Janus was a fast way to bolt on the IDE-alikes I liked from ST2. It was, indeed, too much on a first go, and I uninstalled it. I am back to it, though, and appreciate that it brought together the "big guns" like fugitive, nerdtree, syntastic, &c. as well as things I'm not sure I would have found, like Tim Pope's excellent unimpaired plugin.
Doing things like vimtutor is great for a newbie, but I don't think I care as much whether they have Janus installed or not while they do it.
I don't think I would have been as interested in reading this (interesting!) book if I hadn't seen the power of things like NERDTree and TagBar, and I wouldn't have seen those if I hadn't poked through Janus.
All those distributions started life as personal configurations. I honestly have no idea what happened that made their authors entertain the idea of turning them into so-called distributions but personal configs are what they are. Those configs are someone else's config: whatever is there may or may not fit your workflow or needs or cognitive capabilities or even physical ones. The plugins featured in those configs are chosen by complete strangers according to unknown criterias. The same goes with options and mappings.
When you use Janus, you basically are walking with someone else's shoes. You'll get used to it after a while but they will never be your shoes.
Do you really need Gundo? Gist? NrrwRgn? Do you really need to interact with Git from your text editor? Are you sure that SnipMate is the best choice for a snippet engine? Are you sure that SuperTab is the best choice for completion? Are you sure that you need NERDTree when you have netrw built-in? Are you absolutely certain that you need an Ack plugin? What do you think of a distribution that comes with two plugins with overlapping features and even provides custom mappings that overlap with both?
Another problem with distributions is that, due to their very nature, they have a crazy architecture with many .before and .after scripts and weird directory structures that make the whole thing hard to debug or customize. Not only you are walking with someone else's shoes but that someone is the only person able to fix them or tie your laces.
New users should steer away from Janus and friends because:
* those distributions actively hide many default features/options
* they teach you how to use CtrlP and not default commands
* they hook you to plugins
* they hook you to options you don't know shit about
* they force someone's preferences on your
* they actively prevent you from learning Vim
Experienced users should avoid them because:
* well, they already have their own config tailored to their needs so why bother using someone else's?
* they already know how to find plugins (vim.org)