Vim
Vim is a highly configurable, terminal-based text editor known for its modal editing paradigm, where separate modes for navigation, insertion, and command execution allow experienced users to edit text extremely quickly without a mouse.
Definition
Vim is a highly configurable, terminal-based text editor known for its modal editing paradigm, where separate modes for navigation, insertion, and command execution allow experienced users to edit text extremely quickly without a mouse.
Overview
Created in 1991 by Bram Moolenaar as an improved version of the classic Unix editor `vi` ('Vi IMproved'), Vim's defining characteristic is modal editing: rather than typing directly into a document at all times, users move between a normal mode for navigation and commands, an insert mode for typing text, and a visual mode for selecting text, each with its own set of keybindings. This separation lets experienced users compose powerful commands — like deleting three words or changing everything inside a set of parentheses — from small, combinable building blocks, entirely from the keyboard. Because it runs in a terminal, Vim is available almost anywhere a shell like Bash is, including over SSH connections to remote servers, which has made it a long-standing default for quick edits on Linux systems where a graphical editor isn't available or convenient. Its behavior is extensively customizable through a configuration file and a large plugin ecosystem, letting users add autocompletion, file navigation, syntax checking, and language server support similar to a modern IDE. Vim's modal editing model has proven influential well beyond the editor itself — Vim keybinding emulation modes exist in many modern editors, including VS Code, letting developers keep Vim-style navigation while using a more full-featured graphical IDE.
Key Features
- Modal editing — separate modes for navigation, insertion, and visual selection
- Fully keyboard-driven workflow with no mouse required
- Runs in any terminal, including over SSH to remote servers
- Extensive configuration via a dedicated config file (vimrc)
- Large plugin ecosystem for autocompletion, file navigation, and language support
- Composable command grammar for powerful, efficient text edits
- Available virtually everywhere Unix-like systems are used