awesome-repositories.com
Blog
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectAboutHow we rankPressMCP server
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
emacs-evil avatar

emacs-evil/evil

0
View on GitHub↗
3,792 stars·304 forks·Emacs Lisp·GPL-3.0·3 views

Evil

Evil is a modal editing framework and state-machine layer for the Emacs text editor. It functions as a modal text editing layer that separates text entry from navigation and manipulation by routing intercepted keystrokes through a central command dispatching system.

The project serves as a Vim keybinding emulator, mapping standard modal editing commands and keyboard shortcuts into the Emacs environment. It utilizes an operator-motion command engine to compose atomic movement and action inputs into complex grammatical editing operations.

The framework covers keyboard-driven navigation and text editor customization. It includes a system for modal keybinding configuration and a custom extension framework for defining unique logic and commands.

Features

  • Vim Keybinding Emulations - Implements a comprehensive mapping of Vim modal commands and shortcuts within the Emacs environment.
  • Vim Emulation Layers - Implements a complete modal interaction system that mimics Vim's motions and operators within Emacs.
  • Grammatical Command Composition - Constructs complex editing operations by buffering atomic movement and action inputs.
  • Grammatical Command Engines - Composes atomic movement and action inputs into complex grammatical editing operations.
  • Editor Input Interception - Hooks into the Emacs event cycle to intercept raw input for transformation into modal commands.
  • Layered Keymaps - Provides layered keymaps that override default editor behaviors based on the active modal state.
  • Modal Editing Frameworks - Provides a state-machine layer for Emacs that enables Vim-style navigation and editing workflows.
  • Modal Editing Layers - Functions as a configuration layer that transforms the editor into a state-machine-driven modal environment.
  • Modal Keybinding Engines - Employs a state-machine engine to map key sequences to configurable action handlers across different modes.
  • Keyboard-Driven Code Navigation - Enables high-speed cursor movement and complex edits using text objects and character sequences.
  • Modal Editing Systems - Implements an input scheme that separates navigation and manipulation from text entry via distinct modes.
  • Operator Motion Repetition - Combines text operators with navigation jumps to execute complex modal editing sequences.
  • Modal Editing Modes - Implements high-level modal editing behaviors that change how keys trigger commands.
  • Vi Modal Editing - Implements the modal paradigm of separating text entry from navigation and manipulation.
  • Message Loop Hooks - Injects callback functions into the editor's message loop to capture and transform input sequences.
  • Input Mode State Machines - Uses a deterministic state machine to manage transitions between different input modes via keystrokes.
  • Text Object Parsing - Identifies structural units like words and paragraphs using regex for targeted text manipulation.
  • Buffer-Local Settings - Implements a mechanism for storing modal state and configurations that apply specifically to the current active editor buffer.
  • General Editor Behavior Customizations - Provides APIs for modifying the runtime behavior and functional key mappings of the editor.
  • Extensibility Frameworks - Provides an architectural framework for users to define custom logic and extend the modal editing layer.

Star history

Star history chart for emacs-evil/evilStar history chart for emacs-evil/evil

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Evil

Similar open-source projects, ranked by how many features they share with Evil.
  • vscode-neovim/vscode-neovimvscode-neovim avatar

    vscode-neovim/vscode-neovim

    7,689View on GitHub↗

    This project is a modal editing integration that embeds a full Neovim instance into Visual Studio Code. It functions as a modal text editor, providing native motions and keybindings for navigation and text manipulation through a buffer synchronization bridge. The integration features a Lua scripting interface for automating editor behavior and a coordination layer that maps Neovim motions to native Language Server Protocol actions for code navigation. It ensures consistency between the two environments using a shared clipboard provider and synchronized cursor and selection states. The system

    TypeScript
    View on GitHub↗7,689
  • vsvim/vsvimVsVim avatar

    VsVim/VsVim

    3,767View on GitHub↗

    VsVim is a Visual Studio extension and modal text editor plugin that emulates Vim keyboard shortcuts and navigation commands within the Visual Studio integrated development environment. It functions as a Vim emulator, allowing users to navigate and edit code via a specialized command-based system. The project enables modal editing by separating command mode from insert mode. This system implements Vim keyboard emulation to facilitate text manipulation and navigation without the use of a mouse.

    C#
    View on GitHub↗3,767
  • jeffreytse/zsh-vi-modejeffreytse avatar

    jeffreytse/zsh-vi-mode

    4,380View on GitHub↗

    zsh-vi-mode is a modal command line editor and Zsh shell extension that provides Vi and Vim keybindings for terminal navigation and text manipulation. It functions as a plugin that implements a modal state machine to switch between command navigation and text insertion. The extension includes advanced text editing capabilities such as keyword cycling for values, surround management for quotes and brackets, and the ability to hand off the command line buffer to an external text editor for complex modifications. It also provides system integration for synchronizing the shell clipboard with the

    Shellantigenawesomeclipboard
    View on GitHub↗4,380
  • coolwanglu/vim.jscoolwanglu avatar

    coolwanglu/vim.js

    4,446View on GitHub↗

    vim.js is a professional modal text editor implementation designed for integration into web browsers and JavaScript-based applications. It emulates a Vim environment by providing modal editing workflows, keyboard shortcuts, and a state-machine-based input handler to toggle between command and insertion modes. The project enables the embedding of a full-featured text editor into host applications. It facilitates browser-based development by replicating the logic and memory management of a native text editor using JavaScript objects and functions. The editor includes capabilities for syntax hi

    C
    View on GitHub↗4,446
See all 30 alternatives to Evil→

Frequently asked questions

What does emacs-evil/evil do?

Evil is a modal editing framework and state-machine layer for the Emacs text editor. It functions as a modal text editing layer that separates text entry from navigation and manipulation by routing intercepted keystrokes through a central command dispatching system.

What are the main features of emacs-evil/evil?

The main features of emacs-evil/evil are: Vim Keybinding Emulations, Vim Emulation Layers, Grammatical Command Composition, Grammatical Command Engines, Editor Input Interception, Layered Keymaps, Modal Editing Frameworks, Modal Editing Layers.

What are some open-source alternatives to emacs-evil/evil?

Open-source alternatives to emacs-evil/evil include: vscode-neovim/vscode-neovim — This project is a modal editing integration that embeds a full Neovim instance into Visual Studio Code. It functions… vsvim/vsvim — VsVim is a Visual Studio extension and modal text editor plugin that emulates Vim keyboard shortcuts and navigation… syl20bnr/spacemacs — Spacemacs is a community-driven configuration for Emacs that integrates modal text editing and a modular system for… jeffreytse/zsh-vi-mode — zsh-vi-mode is a modal command line editor and Zsh shell extension that provides Vi and Vim keybindings for terminal… coolwanglu/vim.js — vim.js is a professional modal text editor implementation designed for integration into web browsers and… redguardtoo/mastering-emacs-in-one-year-guide — This project is a structured learning curriculum and guide designed to transition a user from a beginner to an…