I would have a hard time living without vim but I can't stand vi. However, learning the former will at least leave you with an idea of how to deal with the later when that's all that is available.
The vim interface by default is actually pretty close to vi. If I'm working on a system with vim the first thing I do is add this stuff to ~/.vimrc
:
syntax enable
set nocp
set wildmenu
There's a bunch of other stuff I prefer -- nowrap and numbering on, etc -- but never mind. "syntax enable" just turns on basic syntax highlighting (somewhat beefier: filetype plugin on
is fundamental too); "nocp" turns off vi compatibility and it is this that starts to distinguish vim from ye olde vi (eg, it enables showmode
which makes the whole experience somewhat more human, since you now have some clue about whether you are in command or ~INSERT~ mode). "wildmenu" just gives you a horizontal completion menu when doing some things, which makes life easier too.
The text editing facilities of vim are second to none -- other than emacs, I've never seen or heard of a piece of software that comes close. They are not easy to learn, but once you know them, they are much faster than mouse menus to use and much more dynamic than the simple key macro alternatives in mouse menu based interfaces. For programming, I sometimes use vim alongside an IDE like Eclipse, but I do most of the work in vim.
If you take that path, lol, look into the autocompletion and taglist plugins. And beware the dark side.
vi
is you can expect it to be on every POSIX compliant system.vi
and notvim
.. Ubuntu is one of the most user friendly distro btw ;-)vim
.vi
is just a symbolic link that eventually point tovim
in the default installation.vi
using the POSIX specifications forvi
. That way you have portable knowledge as well as knowing Vim extensions.