Qu'est-ce que ble.sh ?
ble.sh, le Bash Line Editor, est un éditeur de ligne écrit en pur Bash qui remplace GNU Readline dans les sessions Bash interactives. Vous gardez Bash, votre ~/.bashrc, vos alias et vos scripts, et vous gagnez ce qui oblige d'habitude à changer de shell : coloration syntaxique pendant la saisie, suggestions automatiques tirées de l'historique à la manière de fish, un mode vim complet à côté des raccourcis emacs, une complétion avec menus et descriptions, des abréviations et l'intégration avec bash-completion et fzf. Il est écrit par Koichi Murase et publié sous licence BSD-3-Clause. Il n'y a aucun binaire à lancer : le paquet installe le script dans /usr/share/blesh/ble.sh, et deux lignes dans votre ~/.bashrc l'activent.
apt upgrade.
⚡ Fonctionnalités clés de ble.sh
🎨 Coloration syntaxique
Commandes, mots-clés, chaînes, variables, redirections et noms de fichiers sont colorés pendant la saisie, et une commande inconnue ou une erreur de syntaxe se voit avant d'appuyer sur Entrée.
💡 Suggestions automatiques
Des suggestions à la fish, issues de l'historique et de la complétion, s'affichent en gris après le curseur. Acceptez-les en entier avec la flèche droite ou C-f, ou mot par mot avec M-f.
⌨️ Modes vim et emacs
Raccourcis emacs par défaut, et un mode vi/vim complet avec set -o vi : modes normal, insertion et visuel, objets texte, registres et une ligne d'état facultative façon vim-airline.
📋 Complétion par menu
Tab ouvre un menu de candidats que l'on parcourt avec les flèches, avec des descriptions quand elles existent et une correspondance ambiguë (floue).
✂️ Abréviations
ble-sabbrev définit des abréviations qui se développent pendant la saisie, comme les abréviations de fish ou les alias globaux de zsh : L devient | less.
🐚 Pur Bash, sans binaire
Rien à compiler et rien de propre à une architecture : ble.sh est un script Bash qui tourne partout où tourne Bash 3.0 ou plus récent, et il reste à l'écart des shells non interactifs et des scripts.
apt upgrade vous maintient à jour.
📦 Installation depuis deb.griffo.io
Étape 1 : ajouter le dépôt
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo apt updateinstall -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
apt updatesudo apt install extrepo
sudo extrepo enable griffo
sudo apt update🆓 Il existe un miroir gratuit pour toujours. deb-free.griffo.io distribue des paquets gratuitement pour toujours — sans compte, sans abonnement, au plus 2 mois derrière l'upstream, correctifs de sécurité immédiats. Il contient aujourd'hui cliamp, Ghostty, lazydocker, Oh My Posh, Uncloud et Zed ; ble.sh n'en fait pas partie, le dépôt ci-dessus reste donc le seul moyen de l'installer — demandez-le et il pourra y être ajouté.
🧩 À propos de l'option extrepo. extrepo est l'outil de Debian pour les dépôts externes : il écrit le fichier de sources et installe la clé de signature à votre place, après l'avoir vérifiée face à des métadonnées signées. Ce dépôt y est enregistré sous le nom griffo, et le miroir gratuit à vie sous griffo-free ; sur Debian (bookworm, trixie, forky et sid), les commandes ci-dessus constituent donc toute l'installation.
extrepo ne met en place que le fichier de sources et la clé : les identifiants d'un abonnement vont toujours dans /etc/apt/auth.conf.d/deb.griffo.io.conf. Ubuntu n'est pas couvert, car extrepo ne publie de métadonnées que pour les suites Debian : utilisez-y les commandes avec sudo ou en root.
Étape 2 : installer ble.sh
# Installer le dernier ble.sh
sudo apt install ble.sh
# Facultatif : thèmes vim-airline pour la ligne d'état du mode vi
sudo apt install ble.sh-airline-themes# Installer le dernier ble.sh
apt install ble.sh
# Facultatif : thèmes vim-airline pour la ligne d'état du mode vi
apt install ble.sh-airline-themesÉtape 3 : activer ble.sh dans votre ~/.bashrc
# ble.sh n'a pas de commande à lancer : Bash le charge depuis ~/.bashrc.
# Placez cette ligne vers le DÉBUT de ~/.bashrc :
[[ $- == *i* ]] && source /usr/share/blesh/ble.sh --noattach
# ...le reste de votre ~/.bashrc ne change pas...
# Et cette ligne tout à la FIN de ~/.bashrc :
[[ ${BLE_VERSION-} ]] && ble-attach
# Ouvrez un nouveau terminal, puis :
# Vérifier l'installation
echo $BLE_VERSION🎯 Exemples d'utilisation de base
Au quotidien :
# Vérifier que ble.sh est actif dans ce shell
echo $BLE_VERSION
# Recharger ble.sh après avoir modifié ses réglages
ble-reload
# Les mises à jour passent par apt ; ble-update vous y renvoie
sudo apt update && sudo apt upgrade# Vérifier que ble.sh est actif dans ce shell
echo $BLE_VERSION
# Recharger ble.sh après avoir modifié ses réglages
ble-reload
# Les mises à jour passent par apt ; ble-update vous y renvoie
apt update && apt upgradeRéglages dans ~/.blerc :
# ble.sh lit ses réglages dans ~/.blerc (ou ~/.config/blesh/init.sh)
# Raccourcis vim au lieu d'emacs
set -o vi
# Attendre 300 ms avant d'afficher une suggestion
bleopt complete_auto_delay=300
# Désactiver complètement les suggestions automatiques
bleopt complete_auto_complete=
# Changer la couleur du texte suggéré
ble-face auto_complete='fg=242'Abréviations, raccourcis clavier et intégrations :
# Développer « L » en « | less » pendant la saisie
ble-sabbrev L='| less'
# Faire que Ctrl+C abandonne la ligne en cours
ble-bind -f 'C-c' discard-line
# Complétion et raccourcis fzf, adaptés à ble.sh
ble-import -d integration/fzf-completion
ble-import -d integration/fzf-key-bindings
# Ligne d'état façon vim-airline (nécessite ble.sh-airline-themes)
ble-import vim-airline
bleopt vim_airline_theme=dark🔧 Intégrations avec d'autres outils
ble.sh se glisse sous votre configuration Bash au lieu de la remplacer :
- bash-completion: les complétions du paquet
bash-completionsont reprises automatiquement et affichées dans le menu - fzf:
ble-importcharge des versions de la complétion et des raccourcis fzf adaptées à ble.sh - Atuin: l'intégration Bash d'Atuin prend en charge ble.sh, qui lui fournit des hooks preexec fiables pour enregistrer l'historique
- Starship / Oh My Posh: les invites qu'ils génèrent continuent de fonctionner sans changement
- Fichier de configuration:
~/.blercregroupe vos réglagesbleopt,ble-faceetble-bind, séparément de~/.bashrc
🚀 Pourquoi choisir deb.griffo.io ?
- Debian officiel: seulement dans testing et unstable ; les versions stables (bookworm et trixie) ne le fournissent pas
- git clone + make: à jour, mais compilé et installé à la main dans
~/.local, et à tenir à jour vous-même avecble-update - deb.griffo.io: dernière version avec mises à jour automatiques
- ✅ Instantanés récents: les instantanés nightly upstream, avec les correctifs pour les nouvelles versions de Bash et les terminaux
- ✅ Aucune installation manuelle: pas de git clone, pas de
make, pas de copie de ble.sh dans votre répertoire personnel à entretenir - ✅ Mises à jour automatiques: paquets mis à jour dans les heures qui suivent chaque version upstream
- ✅ Paquet complet: l'arborescence complète de ble.sh dans
/usr/share/blesh, sa documentation et le paquet facultatifble.sh-airline-themes - ✅ Toutes les architectures: livré en
Architecture: all, donc amd64, arm64, armhf, riscv64 et les autres installent le même paquet - ✅ Multi-distribution: fonctionne sur Bookworm, Trixie, Forky et Sid
- ✅ Maintenance facile: mises à jour avec les commandes apt habituelles
📦 Dépôt de construction du paquet
Les paquets Debian sont construits et maintenus automatiquement dans ce dépôt GitHub :
- 🖍️ ble.sh-debian - Constructions des dernières versions
🔗 Paquets associés
Également disponibles sur deb.griffo.io :
- fzf - Recherche floue avec laquelle ble.sh s'intègre
- Atuin - Historique du shell dans une base de données, compatible ble.sh
- Starship - Invite multi-shell qui fonctionne sous ble.sh
- zoxide - Un cd plus malin qui apprend vos répertoires
~/.bashrc plutôt que le réécrire pour un autre shell.