A better and friendly vi(vim) mode plugin for ZSH, offering near-native Vim keybindings and enhanced features.
Zsh Vi Mode is a Zsh plugin that implements a feature-rich and user-friendly vi(m) modal editing interface for the Zsh shell. It solves the shortcomings of Zsh's built-in vi mode by offering near-native Vim keybindings, better responsiveness, and advanced features like surround operations, system clipboard integration, and smart increment/decrement, making command-line editing more efficient for Vim enthusiasts.
Zsh users who are familiar with Vim keybindings and want a more powerful and accurate modal editing experience in their shell. It's particularly valuable for developers, sysadmins, and power users who prefer Vim's editing paradigm for command-line tasks.
Developers choose Zsh Vi Mode because it provides a significantly better vi(m) mode implementation than Zsh's default, with lower latency, more features (like surrounds and clipboard integration), and extensive customization options. Its pure Zsh script design ensures no external dependencies and seamless integration with popular Zsh plugin managers.
💻 A better and friendly vi(vim) mode plugin for ZSH.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Delivers accurate vi(m) keybindings with normal, insert, and visual modes, closely mimicking Vim behavior to address Zsh's default vi mode limitations, as emphasized in the README's 'Why ZVM?' section.
Includes surround operations for quotes/brackets, smart increment/decrement for numbers/booleans, and system clipboard integration, enhancing command-line productivity beyond basic editing.
Implements lazy keybindings that delay initialization until first use, improving Zsh startup speed, a feature highlighted in the README to reduce initial lag.
Offers configurable escape keys, cursor styles, and highlight behaviors through options like ZVM_VI_ESCAPE_BINDKEY and ZVM_CURSOR_STYLE_ENABLED, allowing tailored workflows.
The default NEX engine is labeled as beta and may have stability issues; the README admits users might need to switch back to ZLE for reliability, indicating potential bugs.
Overwrites key bindings by default, causing conflicts with other plugins like fzf, requiring manual fixes via zvm_after_init_commands, which adds configuration overhead.
System clipboard integration requires manual configuration for different OSes (e.g., custom scripts for WSL or Wayland), making setup cumbersome for heterogeneous environments.