For much of my software editing I use the Vim editor, which started as an enhanced clone of the class Unix vi edit. Vi is a full screen editor for text files with two modes: insert and command. Why do I use vi? Vi was the first full-screen editor I used, way back in around 1980. This was before Microsoft Windows, before even the X Window system. Vi is so-called as it is the visual mode of the ex command line editor. Because of this early exposure to vi, the basic way of working is ingrained in my mind, and I still find vim the quickest way for editing software.
So much for why I started using it, but why continue when full-screen editors are ten a penny? Vim (and the full GUI version, called gvim) has a multitude of features:
- multiple named buffers for copying and pasting
- multiple named book marks, which can be per-file or across files
- macro recording for repetitive tasks
- single character forwards and backward searching of the text under the cursor
- support for ctags style tag lists for jumping to definitions
- text manipulation based to commands which position the cursor, making it easy to do things like “delete up to just before the next comma”
Vim has been around since 1991, and has a large and complex code base as it has supported a wide variety of OSs and compilers over the years. While preparing to type this blog entry I was searching to find a few dates and stumbled across neovim which I will look into. Newvim is a rewrite of vim in a more modern style to allow it to be easier to add plug-ins.