Web site: github.com/akinomyoga/ble.sh
Category: Office
Subcategory: Text Editors
Platform: Linux, Unix-like
License: BSD
Interface: CLI
Wikipedia:
First release: 2015
Bash Line Editor – a line editor written in pure Bash with syntax highlighting, auto suggestions, vim modes, etc. for Bash interactive sessions.
This script supports Bash 3.0 or higher although we recommend using ble.sh with release versions of Bash 4.0 or higher. Currently, only UTF-8 encoding is supported for non-ASCII characters. This script is provided under the BSD License (3-clause BSD license).
Disclaimer: The core part of the line editor is written in pure Bash, but ble.sh relies on POSIX stty to set up TTY states before and after the execution of user commands. It also uses other POSIX utilities for acceleration in some parts of initialization and cleanup code, processing of large data in completions, pasting large data, etc.
Features:
– Syntax highlighting: Highlight command lines input by users as in fish and zsh-syntax-highlighting. Unlike the simple highlighting in zsh-syntax-highlighting, ble.sh performs syntactic analysis to enable the correct highlighting of complex structures such as nested command substitutions, multiple here documents, etc. Highlighting colors and styles are fully configurable.
– Enhanced completion: Extend completion by syntax-aware completion, completion with quotes and parameter expansions in prefix texts, ambiguous candidate generation, etc. Also, menu-complete supports the selection of candidates in the menu (candidate list) by cursor keys, TAB, and S-TAB. The feature auto-complete supports the automatic suggestion of completed texts as in fish and zsh-autosuggestions (with Bash 4.0+). The feature menu-filter integrates automatic filtering of candidates into menu completion (with Bash 4.0+). There are other functionalities such as dabbrev and sabbrev like zsh abbreviations or zsh-abbr.
– Vim editing mode: Enhance readline’s vi editing mode available with set -o vi. Vim editing mode supports various vim modes such as char/line/block visual/select mode, replace mode, command mode, operator pending mode as well as insert mode and normal mode. Vim editing mode supports various operators, text objects, registers, keyboard macros, marks, etc. It also provides vim-surround as an option.
– Other interesting features include status line, history share, right prompt, transient prompt, xterm title, etc.