Dans la coquille de poisson , la syntaxe de la ligne de commande est la suivante:
Y a-t-il un moyen d'avoir ce même comportement dans bash?
Il y a quelque chose comme ça mais pour zsh, pas bash. Est-il possible que cela puisse être porté à bash?
Pour clarifier pour ceux qui ne comprennent pas la capture d'écran, l'explication ou le lien fourni: Je souhaite mettre en surbrillance le texte saisi au terminal. Les commandes, parenthèses, guillemets, etc.
bash
syntax-highlighting
fish
Wuffers
la source
la source
Réponses:
Bash utilise
readline
pour la saisie interactive, la surbrillance de la syntaxe doit donc être implémentée dans ce programme. J'ai trouvé une discussion de groupe Google sur la manière de coder une telle fonctionnalité.La coquille de poisson utilise son propre éditeur de lignes, spécifique à ce programme, et ne peut pas être directement porté.
Vous trouverez peut-être que cela
zsh
ressemble beaucoup à bash et que son éditeur de lignes est extensible . J'ai trouvé zsh-syntax-highlighting pour activer cette fonctionnalité dans zsh.la source
Il n’existe pas de moyen simple d’obtenir la coloration syntaxique dans GNU Bash (ou GNU Readline), mais il est en principe possible d’implémenter votre propre éditeur de lignes dans des scripts Bash en liant toutes les entrées utilisateur à des fonctions de shell à l’aide de la commande intégrée
bind -x 'BYTE: SHELL-COMMAND'
. Il est bien entendu possible d'intégrer la fonctionnalité de mise en évidence de la syntaxe dans votre propre éditeur de lignes.En fait, j'ai implémenté un éditeur de lignes
ble.sh
avec des fonctionnalités telles que la coloration syntaxique et les suggestions automatiques. Il prend en charge Bash 3.0--5.0. Comme il est écrit dans des scripts Bash (presque) purs, vous pouvez simplement insérersource
le script dans~/.bashrc
. Voici un exemple à configurerble.sh
dans bashrc (voir le fichier LISEZMOI pour plus de détails):Remarque : je sais que parfois, répondre à des questions contenant des liens vers des produits propres est considéré comme une auto-promotion et une préférence, alors je me suis abstenu de répondre à cette question. Cependant, aucune autre solution n’est apparue longtemps, et cette question suscite de nombreux points de vue (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 à titre d'exemple de mise en œuvre.
Oui, je dois admettre que c'est en fait de la promotion personnelle , mais je crois que cela aide les personnes qui veulent la fonctionnalité. S'il y a des problèmes, je vous serais reconnaissant de bien vouloir me le dire par des commentaires.
la source
Je ne pense pas que la mise en évidence de la syntaxe devrait se produire au niveau du shell mais au niveau de l'interface (juste mon avis - et celui de quelqu'un d'autre semble-il) -, alors je chercherais des "plugins" pour Terminal ou votre console préférée, par exemple ce plug- in pour Kate pourrait aider, ou cet autre qui propose la coloration syntaxique en nano
Voici encore plus de discussions sur la coloration syntaxique dans Terminal:
bien ici est mieux expliqué la façon de
J'espère que ça aide
la source
ls
commande en fonction du type de fichier, ce qui n’a rien à voir avec la syntaxe du shell.