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
martanne avatar

martanne/vis

0
View on GitHub↗
4,634 stars·281 forks·C·14 views

Vis

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 project provides broad capabilities for text manipulation, including the use of multiple cursors and selections, a directed graph for non-linear undo and redo history, and a multi-window interface rendered via VT-100 escape sequences. Users can define custom motions and operators through the embedded scripting API.

The application can be compiled into a single statically linked binary for portability.

Features

  • Vi-Like Editors - Implements a modal text editor centered on vi keybindings and structural regular expressions.
  • Modal Editing Interfaces - Utilizes a modal editing paradigm to separate navigation and manipulation commands from text entry.
  • Text Editing Modes - Utilizes a mode-based interface to separate text entry from navigation and manipulation commands.
  • Text-Object Motions - Supports navigation via structural text objects such as words, sentences, and bracketed blocks.
  • Structural Regular Expression Transformations - Applies changes to specific text ranges using structural regular expressions and address specifications.
  • Regex Search and Replace - Applies structural regular expressions to perform complex search and replace operations.
  • Structural Text Transformations - Employs structural regular expressions to select and transform text patterns across a document.
  • Structural Regular Expressions - Employs structural regular expressions to identify and transform complex text patterns across the document.
  • Programmatic Buffer Manipulations - Provides an API to programmatically insert, delete, or replace text at specific byte offsets using logical lines.
  • Basic Text Deletion - Provides fundamental operations to remove specified character ranges or entire lines.
  • Editor State Management - Tracks windows, files, and selections while maintaining restore points for non-linear undo and redo operations.
  • Modal Text Manipulation - Executes text manipulation tasks through a command-driven interface using structural regular expressions.
  • Custom Key Mappings - Enables user-defined keyboard shortcuts and command bindings to automate editor actions.
  • Input Mode Configurations - Uses a modal input hierarchy to separate navigation and manipulation commands from text entry.
  • Modal Input Systems - Implements a modal input architecture that separates navigation commands from text entry modes.
  • Range-Based Command Execution - Executes text manipulations and insertions on specific substrings defined by address ranges.
  • Range-Based Text Modification - Implements the ability to delete a selected range and immediately position the cursor for insertion.
  • Regular Expression Search and Replace - Applies structural regular expressions to find and modify complex text patterns.
  • Scriptable Editors - Functions as a scriptable text editor that can be extensively customized via Lua scripts.
  • Terminal Text Editors - Provides a complete modal text editing environment designed specifically for terminal interfaces.
  • Dynamic Text Buffers - Maintains document content in dynamic memory buffers that support absolute byte-offset manipulations.
  • Vi Modal Editing - Implements the classic Vi modal editing paradigm for fast text navigation and manipulation.
  • Embedded Lua Scripting - Provides an embedded Lua interpreter for defining custom editor motions, operators, and general configuration.
  • Lua-Based Extensibility - Allows extending the editor's functionality, including custom motions and key mappings, using Lua script modules.
  • Regular Expression Engines - Implements a specialized pattern matching engine based on structural regular expressions for complex text manipulation.
  • Structural Pattern Matching - Identifies text ranges using extended regular expressions to target specific patterns for commands.
  • Structural Regular Expressions - Features a pattern matching engine that treats text as a structure for complex search and replace.
  • Lua Configuration Files - Uses Lua scripts as configuration files to set personal preferences and automate startup behavior.
  • Editor Capability Extensions - Provides an API for creating plugins that add specialized behaviors and functional tools to the text editor.
  • Editor Mode Switching - Implements a modal interface that changes how keyboard input is processed based on the active editor state.
  • Syntax Highlighting Editors - Applies color and style to source code based on filetype detection using a system of lexers.
  • Syntax Highlighting - Implements a syntax highlighting system based on Parsing Expression Grammars to identify complex language structures.
  • PEG-Based - Implements a syntax highlighting system based on Parsing Expression Grammars to identify complex language structures.
  • Text-User Interface Rendering - Renders a full text-based user interface using curses or VT-100 escape sequences.
  • Terminal User Interfaces - Provides a comprehensive framework for managing viewports and styles within a terminal environment.
  • Text Operators - Executes text manipulation actions on ranges defined by motions or structural addresses.
  • Partial File Reading - Reads file content into memory using standard read calls or memory-mapped loading for efficiency.
  • Mark-Based Range Addressing - Uses saved character marks to define the start or end of a text range for commands.
  • Undo-Redo State History - Implements a directed graph to track document state transitions for non-linear undo and redo operations.
  • Non-Linear Undo Graphs - Tracks document modifications in a directed graph to support non-linear undo and redo operations.
  • Command Block Grouping - Encloses multiple commands in a block to apply them sequentially to a single text range.
  • Command Palettes - Processes user-entered strings to trigger internal editor commands, search operations, and cursor movements.
  • Cross-Line Text Navigation - Moves the cursor by character, codepoint, or line boundaries to traverse document content.
  • Custom Motion Definitions - Allows users to define custom motions via a scripting API to determine operation targets.
  • Custom Keybindings - Allows users to define global or window-local keyboard shortcuts to trigger functions or recursive key sequences.
  • Editor Configuration Interfaces - Provides a command-line interface to modify application settings and behavioral options during runtime.
  • External Command Execution - Allows the editor to spawn subprocesses via the system shell and communicate via standard streams.
  • External Command Integrations - Provides interoperability by sending selected text to external processes and replacing it with their output.
  • External Process Integrations - Manages the execution of external binaries and shell scripts to process text ranges.
  • Text Marks - Allows users to store named marks for quick navigation back to specific text ranges.
  • Multi-Cursor Editing - Provides capabilities for simultaneous text manipulation across multiple document locations using multiple cursors.
  • Named Marks - Allows users to associate symbolic names with text ranges for quick navigation.
  • Pattern-Based String Substitutions - Replaces text using captured groups or the matched string to transform content.
  • Shell Command Execution - Allows users to execute system shell commands and pipe text ranges between the editor and the shell.
  • Text Object Selection - Identifies and selects semantic blocks like words or paragraphs for targeted editing.
  • Text Pattern Search - Locates specific character sequences moving forward or backward across the document.
  • Text Register Managers - Maintains multiple named registers to store yanked or deleted text for later reuse.
  • Undo History Managers - Navigates an undo tree to restore text to a previous state via non-linear history.
  • Viewport Splitting - Supports splitting the viewport into rows or columns to view and edit multiple files simultaneously.
  • Custom Command Registrations - Enables adding user-defined functions to the command palette with integrated help text and argument handling.
  • File I/O Management - Manages file loading and saving using various methods, including atomic writes and memory-mapped I/O.
  • Configurable Key-to-Command Mappings - Implements a system for mapping keys to specific editor commands across different operational modes.
  • Syntax Highlighting Engines - Applies visual styles to text ranges using a syntax highlighting system based on Parsing Expression Grammars.
  • Shell - Integrates with the system shell by streaming text ranges to external commands and capturing their output.
  • Keystroke Sequence Capture - Saves keystroke sequences to registers and replays them to automate repetitive editing tasks.
  • Window Organizers - Supports organizing the display area by splitting windows into horizontal and vertical layouts.
  • Display Settings - Provides user-facing settings to configure visual preferences like line numbers and whitespace symbols.
  • Multiple - Manages multiple active selection ranges simultaneously so a single command affects all selected occurrences.
  • Terminal Text Coloring - Supports defining text and background colors using hex codes and terminal indices for visual styling.
  • Terminal Text Styling - Applies advanced text styling including bold and italic attributes within the terminal.
  • Multiple Cursors - Supports the management of multiple active cursors and non-contiguous selections for parallel editing.
  • Command Output Integration - Updates the document with the output of shell commands upon successful process exit.
  • Visual Style Customization - Allows the definition and application of display styles to specific window ranges or terminal cells.
  • Multiple Cursor Selections - Handles concurrent text selections to perform repetitive edits across multiple positions simultaneously.
  • Text Editors - Highly efficient modal text editor.
  • Text Editors - Vi-like editor with structural regular expressions.

Star history

Star history chart for martanne/visStar history chart for martanne/vis

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

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

Projects sharing features with Vis

These projects share indexed features with Vis. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • mawww/kakounemawww avatar

    mawww/kakoune

    10,938View on GitHub↗

    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.

    C++
    View on GitHub↗10,938
  • 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
  • b4winckler/macvimb4winckler avatar

    b4winckler/macvim

    5,049View on GitHub↗

    MacVim is a native Cocoa application that implements the Vim modal text editor as a graphical user interface on macOS. It integrates the editor engine directly into a native window and event loop, allowing it to operate without a terminal emulator. The project functions as both a programming text editor and a hexadecimal binary editor. It provides tools for modifying raw binary data via a visual hexadecimal grid and applying patches to binary files. The editor features modal input handling, pattern-based syntax highlighting, and rectangular block selection. Additional capabilities include mu

    C
    View on GitHub↗5,049
  • rizonesoft/notepad3rizonesoft avatar

    rizonesoft/Notepad3

    6,456View on GitHub↗

    Notepad3 is a lightweight Windows text editor designed as a replacement for the default system notepad. It is built on the Scintilla text engine to provide source code editing capabilities, including syntax highlighting, code folding, and automatic indentation. The editor is distinguished by its support for registry-free portable execution, allowing the application to run from removable storage without system installation. It features integrated file encryption and decryption tools for secure document management and a regular expression engine for complex search and replace operations across

    Csyntax-highlighting
    View on GitHub↗6,456
Compare all 30 related projects→

Frequently asked questions

What does martanne/vis do?

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.

What are the main features of martanne/vis?

The main features of martanne/vis are: Vi-Like Editors, Modal Editing Interfaces, Text Editing Modes, Text-Object Motions, Structural Regular Expression Transformations, Regex Search and Replace, Structural Text Transformations, Structural Regular Expressions.

Which projects share features with martanne/vis?

Projects with overlapping indexed features include: mawww/kakoune — Kakoune is a scriptable, modal text editor for the terminal that employs a client-server architecture. This model… helix-editor/helix — Helix is a terminal-based modal text editor designed for efficient code manipulation and navigation. It centers on a… b4winckler/macvim — MacVim is a native Cocoa application that implements the Vim modal text editor as a graphical user interface on macOS.… rizonesoft/notepad3 — Notepad3 is a lightweight Windows text editor designed as a replacement for the default system notepad. It is built on… tencent/cherry-markdown — Cherry Markdown is a web-based Markdown editor and parsing engine that converts markup text into sanitized HTML with a… jmacdonald/amp — Amp is a modal text editor for the command line. It provides a terminal-based interface for editing text and…