Il n'y a pas simple pour obtenir la coloration syntaxique dans GNU Bash (ou GNU Readline), mais il est en principe possible d'implémenter votre propre éditeur de ligne dans Bash script en liant toutes les entrées utilisateur à des fonctions script en utilisant la commande construite bind -x 'BYTE: SHELL-COMMAND'
. Il est bien sûr possible d'intégrer la fonction de coloration syntaxique dans votre propre éditeur de ligne.
En fait, j'ai implémenté un éditeur de ligne ble.sh
avec des fonctionnalités telles que la coloration syntaxique et les auto-suggestions. Il supporte Bash 3.0..5.1. Puisqu'il est écrit en scripts Bash (presque) purs, vous pouvez juste source
le script en ~/.bashrc
. Voici un exemple à mettre en place ble.sh
dans le bashrc (voir README pour plus de détails) :
$ git clone https://github.com/akinomyoga/ble.sh.git
$ cd ble.sh
$ make
$ make INSDIR="$HOME/.local/share/blesh" install
# bashrc
# Add the following line at the beginning of bashrc
[[ $- == *i* ]] &&
source "$HOME/.local/share/blesh/ble.sh" --attach=none
# ... other bashrc settings ...
# Add the following line at the end of bashrc
[[ ${BLE_VERSION-} ]] && ble-attach
Nota : Je sais que parfois répondre à des questions avec des liens vers ses propres produits est considéré comme de l'auto-promotion et non souhaitable, c'est pourquoi je me suis abstenu de répondre à cette question. Cependant, aucune autre solution n'est apparue depuis longtemps, et de plus cette question a beaucoup de vues (ce qui reflète sa demande importante). J'ai donc décidé de répondre à cette question aujourd'hui. En me référant aux méta-questions/réponses suivantes, j'ai d'abord décrit l'idée et ensuite fourni un lien vers mon projet comme exemple de mise en œuvre.
Oui, je dois admettre que c'est en fait autopromotion mais je pense que cela aide les personnes qui veulent cette fonctionnalité. S'il y a des problèmes, j'apprécierais que vous me le disiez dans les commentaires.
Mise à jour 2022-01-12 Mise à jour des versions de Bash supportées. Corriger la grammaire.