awesome-repositories.com
Blog
MCP
awesome-repositories.com

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

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
mawww avatar

mawww/kakoune

0
View on GitHub↗
10,938 stars·772 forks·C++·Unlicense·11 viewskakoune.org↗

Kakoune

Kakoune is a scriptable, modal text editor for the terminal that employs a client-server architecture. This model allows multiple terminal windows to connect to a single editing session, providing a programmable environment for managing source code and text.

The editor is distinguished by its selection-first logic, where a text region must be predefined before a command is applied. It leverages regular expressions to manage multiple cursors and perform bulk edits across complex text patterns, and it integrates deeply with the shell by piping selections through external programs and filters.

The system includes a unified command language for both interactive use and automation, supported by event hooks, macro recording, and a hierarchical configuration system. It further provides regex-based syntax highlighting, a flexible key mapping system with custom modal namespaces, and various buffer management primitives including atomic writing and asynchronous output handling.

Features

  • Modal Editing Systems - Implements a selection-first modal editing system for precise text and code manipulation.
  • Modal Editors - The editor manipulates text and code through a selection-based modal interface.
  • Client-Server Text Editor Architectures - Employs a client-server architecture allowing multiple terminal windows to connect to a single editing session.
  • Regex-Based Bulk Editing - Leverages regular expressions to manage multiple cursors and execute bulk edits across complex text patterns.
  • Text Search and Replace - The editor identifies all occurrences of a pattern across a buffer and replaces them.
  • Command Line Interfaces - Provides a command line to enter and validate text instructions or search queries.
  • Command Piping - Pipes selected text through shell programs to transform content or insert command output.
  • Custom Key Mappings - Provides a flexible system for registering user-defined keyboard shortcuts to trigger editor actions.
  • Modal Keymap States - Implements custom modal states that redefine how keys are interpreted based on the active interaction mode.
  • Editor Buffer Managers - Provides comprehensive management of editor buffers, including lifecycle control for read-only and scratch buffers.
  • Modal Input Systems - Isolates keyboard interpretations into distinct namespaces based on the active interaction mode.
  • Multi-Cursor Editing - The editor handles several active edit points simultaneously to apply changes across selections.
  • Multi-Cursor Editing Systems - The editor moves cursors and performs edits like yanking and pasting across active selections.
  • Selection-Based Command Execution - The editor modifies text and source code using a selection-based command-line interface.
  • Shell Command Execution - Integrates deeply with the shell by executing external commands and piping their output directly into the editor.
  • Shell Integration Tools - Deeply integrates with the shell by piping text selections through external programs and filters.
  • Unified Command Interfaces - Provides a unified language for both interactive prompts and automation scripts to execute internal operations.
  • Terminal Text Editors - A programmable terminal-based code editor featuring regex-based selections and multiple cursors.
  • Client-Server Architectures - Employs a client-server architecture allowing multiple terminal windows to connect to a single editing session.
  • Filesystem Loading - Allows loading text directly from the host filesystem into the editor's buffers or registers.
  • Text Editing Modes - The editor inserts characters at the cursor and provides basic manipulation and completion.
  • Scriptable Automation - Provides a programmable environment for automating text manipulation through command strings and event hooks.
  • Text Object Selection - The editor selects logical units of text like paragraphs and blocks for efficient editing.
  • Unified Command Languages - Employs a consistent command language for both interactive user input and programmable automation scripts.
  • Output Externalization - Sends selection content to an external shell filter and replaces it with the resulting output.
  • Client-Server Architecture - The editor connects multiple terminal windows to a single editing session using a client-server architecture.
  • Selection Manipulation Engines - Employs regular expressions to split, filter, and multiply cursor positions for simultaneous editing.
  • Terminal Input Modes - Manages isolated mapping namespaces to organize commands and prevent conflicts with built-in keys.
  • Selection Logic - Ensures all operations require a predefined text selection before a command is applied.
  • Multiple - The editor creates and filters multiple selections based on regex patterns or shell results.
  • Regex-Based Highlighting - The editor uses regular expressions to apply visual styles to specific text patterns.
  • Text Selection Control - The editor selects a region of text before applying an operation to ensure consistency.
  • Regex-Based Selection - The editor finds occurrences of text via regex to create or jump between selections.
  • Terminal Element Styling - The editor defines foreground colors, background colors, and text attributes to control the visual appearance of components.
  • Structural Text Transformations - The editor executes structural changes like alignment and case conversion across active selections.
  • External Feed Integrations - Uses named pipes to stream data asynchronously between the editor and external shell processes.
  • Capture Group Implementation - The editor stores grouped sub-matches from a search into indexed registers.
  • Asynchronous Buffer Population - The editor uses FIFO buffers to run background commands and display results progressively.
  • Custom Command Definitions - Allows users to define new editor commands to extend the programmable environment.
  • Command Palette Executions - Provides a keyboard-driven command interface for executing internal editor instructions with history and completion.
  • Command Aliasing - Supports creating short nicknames for existing commands to accelerate interactive text editing.
  • Command Completion Systems - Provides configurable completion logic for command parameters using buffers, files, or shell scripts.
  • Multiline Command Sequences - Runs a sequence of commands or simulated keypresses as a single unit of work.
  • Runtime State Injection - Replaces placeholders with real-time values from the editor's internal state during command execution.
  • Command Scripting - Evaluates a set of commands as if they were entered interactively into the prompt.
  • Document Marks - The editor records selections as spans with timestamps to return to specific document locations.
  • Editor State APIs - Provides read-only access to internal metadata like cursor position and buffer names for use in scripts.
  • Event Hooks - Triggers specific commands automatically when predefined editor events occur.
  • File Navigation Tools - Allows rapid navigation to specific locations within a file or jumping to referenced files.
  • In-Editor Text Completion - Implements real-time text suggestions based on configurable search paths and completion engines.
  • Key Sequence Patterns - Supports binding specific sequences of keys to commands across different operational scopes.
  • Sequence-Based Mappings - Allows keys to trigger other complex sequences or commands across different interaction modes.
  • Macro Recorders - Captures a sequence of commands into a register to automate repetitive tasks.
  • Workflow Customization - Enables highly personalized editing environments through scripted event hooks and custom modal namespaces.
  • Selection History Traversal - Enables navigation through a history of previous selection positions and jumps to specific lines.
  • Named Pipe Streaming - Reads content from a named pipe into a buffer and updates the view as new data arrives.
  • Text Register Managers - The editor stores named lists of text for later retrieval from yanked content.
  • Selection History Persistence - The editor saves text lists and selection locations into named registers for later use.
  • Terminal Development Environments - Provides a complete terminal-based development environment using a client-server architecture for multiple windows.
  • Configuration Scripting - Provides a scripting environment for dynamically configuring editor behavior and settings at startup.
  • Scope-Selector Configurations - Maintains configuration values at global, window, and buffer levels for granular control.
  • Configuration Scope Hierarchies - Provides a hierarchical configuration system with values scoped at global, window, and buffer levels.
  • Editor Gutter Components - The editor adds flags or symbols in the buffer margin to show warnings or metadata.
  • Line Numbering Utilities - The editor renders line numbers in the gutter with relative numbering and highlighting options.
  • Modal Display Controllers - The editor shows modal or anchored messages and documentation to the user.
  • Highlighter Management - The editor adds or removes syntax or pattern highlighters within the current window.
  • Range-Based Styling - The editor applies visual styles or replaces text ranges based on coordinate specifications.
  • Region-Based Highlighting - The editor segments text into regions using delimiters to apply styles to nested blocks.
  • Syntax Highlighting - Applies visual styles by matching text patterns against a prioritized set of regular expressions.
  • Navigation Patterns - The editor moves the cursor or extends selections using character or pattern-based movements.
  • Selection Filtering - The editor reduces a set of selections to those matching a specific regular expression.
  • Selection State Persistence - The editor stores current selection positions in registers to restore or merge them later.
  • Visual Style Customization - The editor defines color faces and loads colorschemes to control the visual styling.
  • Text Editors - Modal editor with a focus on selection.

Star history

Star history chart for mawww/kakouneStar history chart for mawww/kakoune

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

Frequently asked questions

What does mawww/kakoune do?

Kakoune is a scriptable, modal text editor for the terminal that employs a client-server architecture. This model allows multiple terminal windows to connect to a single editing session, providing a programmable environment for managing source code and text.

What are the main features of mawww/kakoune?

The main features of mawww/kakoune are: Modal Editing Systems, Modal Editors, Client-Server Text Editor Architectures, Regex-Based Bulk Editing, Text Search and Replace, Command Line Interfaces, Command Piping, Custom Key Mappings.

What are some open-source alternatives to mawww/kakoune?

Open-source alternatives to mawww/kakoune include: martanne/vis — Vis is a terminal-based modal text editor that utilizes vi keybindings and a system of structural regular expressions.… helix-editor/helix — Helix is a terminal-based modal text editor designed for efficient code manipulation and navigation. It centers on a… xi-editor/xi-editor — xi-editor is a high-performance text editor core written in Rust. It employs a client-server architecture that… onivim/oni2 — Oni2 is a high-performance, extensible text editor and project-based file manager. It functions as a modal code… mhinz/vim-galore — Vim-galore is a comprehensive technical reference and curated guide for mastering the Vim text editor. It serves as a… sinelaw/fresh — Zed is a terminal-based code editor built in Rust that provides a full-featured editing experience with familiar…

Open-source alternatives to Kakoune

Similar open-source projects, ranked by how many features they share with Kakoune.
  • martanne/vismartanne avatar

    martanne/vis

    4,634View on GitHub↗

    Vis is a terminal-based modal text editor that utilizes vi keybindings and a system of structural regular expressions. It functions as a scriptable environment where Lua is used for configuration, custom key mappings, and plugin development. The editor distinguishes itself through a syntax highlighting system based on Parsing Expression Grammars and a pattern matching engine that treats text as a structure for complex search and replace operations. It also integrates directly with the system shell, allowing users to pipe text ranges to external commands and capture the resulting output. The

    C
    View on GitHub↗4,634
  • helix-editor/helixhelix-editor avatar

    helix-editor/helix

    44,911View on GitHub↗

    Helix is a terminal-based modal text editor designed for efficient code manipulation and navigation. It centers on a selection-first editing model, where operations are performed on active ranges rather than individual cursor positions, allowing for precise control over text and code structures. The editor distinguishes itself through deep integration with structural parsing and language intelligence. By utilizing an incremental parsing library, it builds concrete syntax trees that enable advanced features like structural code navigation, intelligent indentation, and syntax-aware text object

    Rustkakounerusttext-editor
    View on GitHub↗44,911
  • xi-editor/xi-editorxi-editor avatar

    xi-editor/xi-editor

    19,816View on GitHub↗

    xi-editor is a high-performance text editor core written in Rust. It employs a client-server architecture that separates the backend editor logic from the user interface, allowing diverse frontends to communicate with the core via a standardized protocol. The project is distinguished by its use of rope-based text buffers for efficient manipulation of large documents and a collaborative engine powered by conflict-free replicated data types to synchronize concurrent edits. It further features an extensible plugin system that integrates external binaries and third-party tools through JSON-based

    Rust
    View on GitHub↗19,816
  • onivim/oni2onivim avatar

    onivim/oni2

    7,854View on GitHub↗

    Oni2 is a high-performance, extensible text editor and project-based file manager. It functions as a modal code editor, utilizing a keyboard grammar of verbs and motions to navigate and modify source code without a mouse. It also serves as an LSP client, integrating Language Server Protocol servers to provide code completion, symbol navigation, and refactoring. The editor distinguishes itself by acting as a VSCode extension host, allowing it to load and execute language servers and debuggers from the VSCode ecosystem. It provides a programmable environment where custom functionality is implem

    Reason
    View on GitHub↗7,854
See all 30 alternatives to Kakoune→