- Vim script enhancements -- now you can have List, Dictionary and Funcref inside Vim scripts. One step towards becoming Emacs?
- Spell checking built in -- use
:set spellto underline the mis-spelt words, and
z=to list suggestions. For myself it has to be the most useful feature. No more excuse to misspell words now.
- Omni completion -- type
Ctrl-X Ctrl-Oin insert mode and a popup will appear with suggestions to let you select for completions. Many programming languages are supported.
- Tab pages -- everyone loves tabs, and now even Vim has one! You can use GUI tab or just a simple label at top.
- Undo branches -- now you can redo the changes that you have previously undone and made further change over it. You can undo/redo by timestamping the changes.
- Internal grep -- use
:vimgrep <pattern> <files>and it will find the matches. Use
:cprevto go to the next/previous match.
- Remote file explorer -- using the
netrwplugin, which supports remote editing using WebDAV, FTP, SCP, SFTP, etc.
... and many more. Just go, download and install it. Type in
:help version7 for the comprehensive list of changes.
Like all trades person who has his/her favourite toolbox, Vim has been my "tool of choice" over the last 8 years. It is available on almost all platforms, and is also installed by default on almost all platforms (not talking about some inferior operating system here). It is fast -- fires up pretty quickly. It is fast -- a few key strokes can get all your mass editing done. It might have a high learning curve, but once you get over it, you just can't live without it.
I came from a PC/MS-DOS background (from the mid-80's) and "vi" has never been my cup of tea. I am more familiar with text editors like the ones came with Borland's Turbo C/Turbo Pascal (based on their text-based TurboVision if I remembered correctly). Editor that only has one "mode", press shift to select, has a menu bar, etc.
So when I started uni and has to get myself familiar with the un*x operating systems, "vi" is not my obvious choice. I have used NEdit for a while, felt that it wasn't powerful enough, and then switched to Emacs and XEmacs. I was happy, as it is very configurable (I spent way too much time hacking my lisp), easy enough to use and came with a kitchen sink.
Fast forward to end of 1997. I got a junior developer/apprentice role at Creative Computing, which at that stage runs all their development on a single Pentium server running SCO OpenServer. Everyone has their low-end workstation connected to that server via telnet, and everyone -- including sales and support -- uses a vanilla "vi" to get their editing done. I don't have the luxury to use other text editors so I ended up having a crash course on "vi" as well.
It turns out "vi" is actually not bad. At least inside a dodgy terminal (can't remember what term emu we were using but it was really dodgy) it performs well, and allows me to edit files efficiently. Pretty soon Vim 5 got released with syntax highlighting, and got it "sort-of" working on that old OpenServer...
The rest is history.
I only stayed in Creative Computing for 7 months, as I had to go back to uni to finish my thesis. But this "vim" bug stuck with me 'til today. For the next few jobs I had, regardless whatever environment they have already provided, I feel that I cannot edit effectively without Vim.
There are many "habits" that just stuck with me because of a certain circumstances I was in. I'll leave that in other entries...