J'ai trouvé une commande il y a quelques mois qui a fait que mon historique bash se complète automatiquement sur ce qui est déjà en ligne en appuyant sur la flèche vers le haut:
$ vim fi
Presse ↑
$ vim file.py
Je voudrais configurer cela sur mon nouvel ordinateur, car cela permet d'économiser beaucoup de temps lors de la conservation d'une grande histoire. Le problème est que je ne peux pas me souvenir de l'endroit où il a été mentionné et lire des références et des tutoriels bash sans fin n'a malheureusement pas aidé non plus.
Quelqu'un connaît-il la commande?
Probablement quelque chose comme
# ~/.inputrc "\ e [A": historique-recherche-en arrière "\ e [B": historique-recherche-en avant
ou équivalent,
# ~/.bashrc si [[$ - == * i *]] puis lier '"\ e [A": recherche historique -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 ~": historique-recherche en arrière "\ e [6 ~": historique-recherche-en avant
Après avoir modifié ~/.inputrc
, redémarrez votre Shell ou utilisez Ctrl+X, Ctrl+R pour lui dire de relire ~/.inputrc
.
Soit dit en passant, si vous recherchez une documentation pertinente:
Bash utilise The GNU Readline Library pour l'invite du shell et l'historique.
Mettez à jour .inputrc avec les éléments suivants:
"\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 ( terminal simple sans succion ), sachez que les touches fléchées sont en mode clavier. Ubuntu est fourni avec cette /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 pourrait ne pas faire 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 ceci xterm: touches spéciales
Avec ohmyzsh, utilisez ceci dans votre . Zshrc :
bindkey '^[OA' history-search-backward
bindkey '^[OB' history-search-forward
Pour recharger, source ~/.zshrc
ou relancez le terminal.