GNU/Linux >> Tutoriels Linux >  >> Linux

Comment remapper Control-w dans Bash ?

J'ai lu un certain nombre de réponses à des questions similaires à la fois dans ce forum et ailleurs, mais je n'arrive pas à le faire fonctionner pour moi.

J'essaie de remapper Ctrl +W pour supprimer le mot suivre plutôt qu'en arrière. Je sais que je peux utiliser Esc +D faites-le, mais c'est aussi un exercice d'apprentissage pour moi.

En utilisant ce que j'ai lu, j'ai ajouté ce qui suit dans ~/.inputrc :

$include /etc/inputrc
Control-w: kill-word
  • La première ligne est, apparemment, nécessaire si je veux inclure les autres liaisons.
  • Pour le second, j'ai essayé Control-w et "\C-w" , et pour la commande, j'ai essayé kill-word et shell-kill-word .
  • Pour essayer les modifications, j'ai essayé bind -f ~/.inputrc , Ctrl +X , Ctrl +R , bash -l et simplement ouvrir un nouveau terminal.

Je suppose que j'ai raté une étape importante, ou simplement mal compris, mais je suis à court d'idées.

Je suis sur Centos 8.

Réponse acceptée :

La bibliothèque readline (qui est ce que inputrc configure) configure les liaisons correspondant aux liaisons du pilote de terminal pour l'entrée cuite. Celles-ci sont communément appelées clés stty car elles peuvent être configurées avec la commande stty . Ctrl +W est la liaison pour supprimer le mot précédent (werase ) dans l'interface du terminal cuit.

Ces liaisons ont priorité sur les liaisons explicites dans .inputrc . Pour désactiver ce comportement, ajoutez cette ligne à votre .inputrc :

set bind-tty-special-chars off

Si vous n'avez pas configuré de liaisons de touches de terminal cuites non par défaut avec stty , je pense que cela n'affectera pas vos liaisons bash.


Linux
  1. Comment utiliser les commandes d'historique de Bash

  2. Comment écrire une boucle dans Bash

  3. Comment concaténer des chaînes dans Bash

  4. Comment parser un fichier CSV dans Bash ?

  5. Comment expirer un groupe de commandes dans Bash

Comment personnaliser l'invite Bash sous Linux

Comment créer des alias Bash

Comment lire un fichier ligne par ligne dans Bash

Comment comparer des chaînes dans Bash

Comment exécuter un script bash

Comment définir une variable d'environnement dans Bash