I'm really into improving efficiency and I enjoy teaching people how to use vi. The class materials are publicly available and are based on Bill Joy's original paper introducing vi:
There is rarely any point learning vi if you are only ever going to use vim. (On many systems, vi is just a symlink to vim anyway).
If I had a nickel for every time someone justified not using vim's features by invoking a bizarre imaginary scenario where they were using vi to twiddle bits on a downed snowflake machine, I could buy a few fancy coffees.
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/vi...
vim is the most popular implementation of vi, with lots of added bells and whistles
I'd say learn vi first; then learn the vim bells and whistles.
I have resources for learning vi at http://www.verticalsysadmin.com/vi.htm
I'm really into improving efficiency and I enjoy teaching people how to use vi. The class materials are publicly available and are based on Bill Joy's original paper introducing vi:
Basic vi: http://www.verticalsysadmin.com/vi/class/
Advanced vi: http://www.verticalsysadmin.com/vi/class/advanced.html
My next vi class will be in Columbus, Ohio at Ohio Linux Fest in a couple of weeks (http://ohiolinux.org/olfi2012/classes/editing-with-vi)