VIM is "VI iMproved", having essentially all the features a programmer could want in a relatively small and fast package. Ron's install (link below) has all sorts of useful enhancements.
Why use VIM?Objections you may have:
- Why should I use VIM, when Notepad is right there on every Windows machine?
- I like MultiEdit/VisualStudio/Eclipse/...!
- Isn't VIM just for dinosaurs who don't like CRT screens?
- But it doesn't have a nice GUI!
- If we only ever had to use Windows machines, that would almost be a reasonable statement. Since we need to also work on Linux machines occasionally, and since vim is (almost) always installed on every Linux machine (it's the default editor), learning how to use VIM is a good idea even if you prefer to use another editor (as in objection #2).
- See the above answer
- VIM is not VI. It works nicely with modern graphical screens, but is just as comfortable over an ssh dialup connection.
- Suffice it to say that VIM is not VI. It is "improved" in the same manner that a Mercedes S-class is an "improved" Model-T.
Among VIM's features:
- exhaustive and excellent online help (accessible via F1 or the ":help" command)
- GUI (both native Windows, and GTK on Linux); color schemes
- syntax highlighting for over 400 languages
- multi-lingual support (UTF-8, custom keyboard input, custom spelling dictionaries)
- character, line and block selections; mouse selection
- ctags and cscope support
- comprehensive scripting language
- extensive regular expression support
There are tons of other features I won't enumerate. If your objection is "I like EMACS" -- then fine, use EMACS. They are functionally equivalent in terms of power, though VIM is smaller and faster (and easier to use IMO, but that's opinion).
How do I learn VIM?The editor already contains its own tutorials; but there are excellent resources online, many of which are not specific to VIM:
- New: free eBook: A Byte of Vim
- Graphical VIM cheat-sheet
- VI Lover's page
- Mastering the VI editor
- VIM tutorial
You can find more by asking Google for vim tutorials.
NOTE: vim starts a text-mode console version of VIM, whereas gvim starts a GUI version of VIM. On Windows they are different programs while on Linux they are just symbolic links to the same executable. I always use gvim on Windows, because console support is ... well, not good on Windows since Microsoft thinks it unimportant.
How do I get VIM?You came to the right place! You can get it from the vim website. But if you use Windows, you might prefer to get my custom build which is linked below. Linux users of my build should get 'wmctrl', 'exuberant ctags' and 'idutils'
Once you become a hard-core vimmer, you'll want to drink your coffee from a VIM mug.
- My private build: is here on this site.