Regarding vi compatibility, jsvi supports almost all vi-keys, and almost all ed/ex (:) commands including :hardcopy, and :g//m0 but noticeably missing are :i and commands that work similar to it, as well as certain register operations.
You can have a look on it here – http://gpl.internetconnection.net/vi/
If you are a beginner and want to have a look on the Basic vi Commands , this article is a good one, to learn about it. It includes basic commands for
Start and Exit Vi
Moving the cursor
Text Add, Edit, delete, cut, copy and paste