Generated by GPT-5-mini| Vim | |
|---|---|
| Name | Vim |
| Author | Bram Moolenaar |
| Developer | Vim community |
| Released | 1991 |
| Operating system | Unix-like, Windows, macOS, AmigaOS |
| License | Charityware (Vim license) |
Vim is a highly configurable text editor that evolved from the Vi family and emphasizes modal editing, extensibility, and efficiency. Created in the early 1990s, it merged concepts from line editors and screen editors to support programmers, system administrators, and writers who need powerful keyboard-driven workflows. Vim has influenced and been integrated into numerous projects, tools, and environments across the Free Software Foundation ecosystem, the Berkeley Software Distribution lineage, and proprietary platforms.
Vim originated as a clone of Vi implemented by Bram Moolenaar, who based it on the source of the Stevie editor and contributions from the Amiga porting community. Early releases targeted AmigaOS users and later expanded to Unix and Microsoft Windows, with notable milestones aligning with evolving standards such as POSIX and the X Window System. Over time Vim incorporated features inspired by editors like Emacs and command shells such as the Bourne shell while maintaining compatibility with scripts written for Vi. The project's charitable licensing model connected it tangentially to organizations such as ICCF Holland and charity-driven distributions that bundle software for broader humanitarian aims. Major versions introduced scripting, multi-byte support for Unicode and UTF-8, and integrations with graphical toolkits like GTK and Quartz.
Vim provides modal operation with distinct modes influenced by historic editors like ed and ex, enabling different input semantics for commands, insertion, and visual selection. Its core features include an extensive command language, a buffer/window/tab model aligned with windowing systems like the X Window System and Microsoft Windows, and powerful pattern matching derived from regular expressions standardized by POSIX. Built-in scripting via a native language allows automation comparable to extensions in Perl, Python, Lua, and Ruby, with interface hooks into those runtimes. Support for file formats, syntax highlighting, and folding is achieved through language-specific definitions for ecosystems such as C++, Java, Python (programming language), HTML, and JSON. Text object manipulation, macros, registers, undo trees, and persistent sessions echo concepts found in tools like GNU Screen and tmux. Cross-platform GUI versions integrate with GTK, Qt, and macOS windowing, while terminal modes interoperate with terminal emulators such as xterm, gnome-terminal, and iTerm2.
Typical workflows use modal commands, mappings, and scripts to customize behavior for workflows in projects managed by systems like Git, Subversion, and Mercurial. Configuration is stored in platform-specific files influenced by conventions from utilities like rc(1), and users often maintain dotfiles alongside configurations for shells such as Bash and Zsh. Popular settings include indentation rules that conform to style guides used by organizations like Google and Linux Kernel maintainers, and integrations with build systems like Make and continuous integration services exemplified by Travis CI and Jenkins. Users tune performance and appearance with options for fonts, colorschemes inspired by design tools and themes used in GNOME and KDE, and clipboard interoperability with desktop environments such as GNOME and KDE Plasma. Advanced usage employs external formatters and linters from ecosystems like ESLint, Clang-Tidy, and Black (software), orchestrated through language servers that follow the Language Server Protocol standard.
A vast plugin ecosystem emerged, modeled after extension approaches used by projects like Vundle and package managers similar to apt and Homebrew. Plugins provide functionality ranging from file explorers to fuzzy finders inspired by tools such as fzf and ripgrep, to completion engines that interface with YouCompleteMe and language-specific linters. Integration with version control systems is handled by plugins that interact with services like GitHub, GitLab, and Bitbucket and with collaborative platforms such as Gerrit. Themed distributions and configuration frameworks mirror community-driven collections seen in Arch Linux and Debian spins. Plugin authors adopt diverse languages and build systems from ecosystems like Node.js, Rust, and Python Package Index, while plugin hosting commonly takes place on platforms such as GitHub and GitLab.
Development is coordinated through a meritocratic model where volunteers contribute patches, documentation, and translations, paralleling governance in projects like NetBSD and OpenBSD. Source code is managed using version control systems comparable to git and historic systems influenced by CVS workflows. The community maintains extensive documentation, tutorials, and help files similar to encyclopedic resources like TeX manuals and Linux Documentation Project guides, and organizes conferences and meetups akin to events hosted by foundations such as the Free Software Foundation Europe and local user groups. Bug tracking, feature proposals, and release coordination involve contributors from academic, corporate, and hobbyist backgrounds, interfacing with ecosystems like Debian maintainers, Fedora Project packagers, and vendors who ship customized builds.
Category:Text editors