Vim is an excellent editor for plain-text, HTML (and related) authoring, scripting/programming. It is relatively small (most packages are under 4MB), low-overhead, well-documented, mature, cross-platform, and free. This software has a steep learning curve: there is (in most cases) no visual interface for editing, although GUI interfaces ARE available.

Because the software is free and cross platform I can arrive in any work environment and after installing Vim immediately begin focusing on the work at hand. No learning new software. No confusion about the product's feature set, or the location of resources for use. No worrying about licensing or budgetary constraints in the workplace. The software can also be run from a local disk (cd or desktop) bypassing most install limitations/restrictions.

Features of Vim I appreciate include: multi-file editing, search+search-and-replace capabilities, regular-expression support, color syntax highlighting, customizability, ability to edit live files directly on a web-server filesystem, cross-platform interface. (For any non-web design work that remains I followup with InDesign or Illustrator, placing text documents or simply copy-and-paste. The Adobe products have features that perform typographic substitution (eg quotation marks) and have the capability to export to PDF format for distribution.)

The editor functions in two separate modes where keyboard input is interpreted as a command, or as text-input. These modes are called 'command-mode' and 'input-mode'. There are a number of ways to enter input mode, but the most common is to simply type the "i" character and the window (usually at the bottom) will indicate you are in insert mode. In insert mode keys typed on the keyboard are reflected on-screen as you see in virtually all editors. The software behaves very predictably and in a way that is familiar to anyone who has used an editor. Command mode is accessed by pressing the escape key (labelled "Esc"). While in command mode keys typed are commands. Commands allow you to control the editing session (navigate the file, save it, exit Vim, edit multiple files, search, configure Vim, etc). Because there is no menu system, or visual interface representing commands, the learning curve is steep and requires memorizing at least 20 or so commands to be able to successfully perform basic edits of any file. A basic introductory tutorial and reference sheet are both highly recommended.

To get started you will need to know how to:

For a basic introduction (that includes all of the above) and listing of basic commands please visit: Norm Matloff's 5 minute introduction to Vi.

Additional resources:

A history of Vim [sources: 1 2 3]

Early text editors were line oriented and typically were used from dumb printing terminals. A typical editor that operates in this mode is Ed: it is powerful and efficient, using a very small amount of computer resources, and worked well with the display equipment of the time. Vi offers the user a visual alternative with a significantly expanded command set compared with ed.

Vi as we know it today started as the line editor ex. In fact, Vi is the visual editing mode of ex and the visual component of ex can be initiated from the command line by using the vi command, or from within ex.

The Vi editor was developed in the late 70's at the University of California at Berkeley by William Joy. It was originally supplied as an unsupported utility until its official inclusion in the release of AT&TSystem 5 Unix. It has steadily become more popular, even with the challenges of more modern full screen editors.