Good guide on VIM Scripting? [closed]

I've used VIM for 10+ years, but never really into VIM scripting (always subjectively beliving that this was one area where VIM was weaker than Emacs).

Recently, the realization "in a VIM script, I can execute normal mode commands" made my mind go "a-ha" and suddenly start realizing why parts of VIM script is the way it is.

normal ma10jd'a20kp

is much more elegant than

Marker m = currentLocation();
advanceLines(10);
Buffer b = delete(currentLocation(), m);
advanceLines(-20);
insertBuffer(b);

Now question is -- what's a good resource to learn vim scripting from?

Thanks!


The best advice I can give is that you read:

:help usr_41.txt

which will give you a good overview of the basics. Then find some things that you want to do and create functions for them. While you're doing this, make heavy use of:

:help function-list

to get an idea of what all the built in functions are. Most of it is fairly similar to other scripting languages (albeit a harsher syntax), so any experience you have of text manipulation in python or whatever will be useful.

Also, look on the vim scripts page and Google to get examples of existing scripts to help expand your knowledge.

Finally (and probably most importantly), don't be afraid to ask on stackoverflow or the Vim mailing list and there'll be plenty of support for any problems you may have.


Learn Vimscript the Hard Way is worth checking out too.

http://learnvimscriptthehardway.stevelosh.com/