If you install MacVim all those standard things (except maybe find, but if you know how to use grep you know how to use find in vi (and if you don't then I can't really help you -- every programmer should know how to use grep, period)) are included in the menus to help you get acclimated.
As for design, Vi is a perfect example of Unix design. It's a text editor. It does one thing and it does it well: edit text. Some may disagree but I also think that Emacs is a good example of Unix design. It does one thing (interpret elisp) and it does it well. By the way, at it's core Emacs is an emacs lisp interpreter, not a text editor (despite misconceptions).
> By the way, at it's core Emacs is an emacs lisp interpreter, not a text editor (despite misconceptions).
While this is very true, it should also be mentioned that Elisp is a lisp designed for writing text editing tools.
(Die-hard lispers will cry blasphemy here; I realize that you could get the same effect in $lisp with a proper set of macros. I maintain that the distinction is not relevant as lisp blurs language and library).
As for design, Vi is a perfect example of Unix design. It's a text editor. It does one thing and it does it well: edit text. Some may disagree but I also think that Emacs is a good example of Unix design. It does one thing (interpret elisp) and it does it well. By the way, at it's core Emacs is an emacs lisp interpreter, not a text editor (despite misconceptions).