GNU/Linux >> Tutoriels Linux >  >> Linux

Comment puis-je modifier l'achèvement de l'historique bash pour terminer ce qui est déjà en ligne?

Probablement quelque chose comme

# ~/.inputrc
"\e[A": history-search-backward
"\e[B": history-search-forward

ou de façon équivalente,

# ~/.bashrc
if [[ $- == *i* ]]
then
    bind '"\e[A": history-search-backward'
    bind '"\e[B": history-search-forward'
fi

(l'instruction if vérifie le mode interactif)

Normalement, Up et Down sont liés aux fonctions Readline previous-history et next-history respectivement. Je préfère lier PgUp/PgDn à ces fonctions, au lieu de déplacer le fonctionnement normal de Up/Down.

# ~/.inputrc
"\e[5~": history-search-backward
"\e[6~": history-search-forward

Après avoir modifié ~/.inputrc , redémarrez votre shell ou utilisez Ctrl +X , Ctrl +R pour lui dire de relire ~/.inputrc .

Au fait, si vous recherchez une documentation pertinente :

Bash utilise la bibliothèque GNU Readline pour l'invite et l'historique du shell.


Mettez à jour .inputrc avec ce qui suit :

"\C-[OA": history-search-backward
"\C-[[A": history-search-backward

"\C-[OB": history-search-forward
"\C-[[B": history-search-forward

Si set enable-keypad on est dans votre ~/.inputrc comme certains utilisateurs de st (suckless simple terminal), sachez que les touches fléchées sont en mode clavier. Ubuntu est livré avec cet utile /usr/share/doc/bash/inputrc.arrows :

# This file controls the behaviour of line input editing for
# programs that use the Gnu Readline library.
#
# Arrow keys in keypad mode
#
"\C-[OD"        backward-char
"\C-[OC"        forward-char
"\C-[OA"        previous-history
"\C-[OB"        next-history
#
# Arrow keys in ANSI mode
#
"\C-[[D"        backward-char
"\C-[[C"        forward-char
"\C-[[A"        previous-history
"\C-[[B"        next-history
#
# Arrow keys in 8 bit keypad mode
#
"\C-M-OD"       backward-char
"\C-M-OC"       forward-char
"\C-M-OA"       previous-history
"\C-M-OB"       next-history
#
# Arrow keys in 8 bit ANSI mode
#
"\C-M-[D"       backward-char
"\C-M-[C"       forward-char
"\C-M-[A"       previous-history
"\C-M-[B"       next-history

Je ne sais donc pas si vous aurez besoin de tout, mais cela ne fera peut-être pas de mal d'avoir dans votre ~/.inputrc :

# Arrow keys in keypad mode
"\C-[OA": history-search-backward
"\C-[OB": history-search-forward
"\C-[OC": forward-char
"\C-[OD": backward-char

# Arrow keys in ANSI mode
"\C-[[A": history-search-backward
"\C-[[B": history-search-forward
"\C-[[C": forward-char
"\C-[[D": backward-char

C'est aussi sur le même sujet :Mes touches de curseur ne fonctionnent pas et aussi ce xterm :touches spéciales


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

  2. Comment effacer l'historique de la ligne de commande BASH sous Linux

  3. Comment savoir sur quelle version d'Os X je suis depuis la ligne de commande ?

  4. Comment changer la longueur de ligne par défaut pour Od et Hexdump ?

  5. Comment lire l'avant-dernière ligne d'un fichier avec Bash ?

Comment commenter dans Bash

Comment lire un fichier ligne par ligne dans Bash

Comment afficher l'historique de Bash sans numéros de ligne

Comment :Historique Bash/shell illimité ?

Comment changer le curseur du terminal de case en ligne ?

Comment changer rapidement le premier mot d'une commande Bash ?