wake-up-neo.com

Wie ändere ich die Vervollständigung des Bash-Verlaufs, um das zu vervollständigen, was bereits in der Zeile steht?

Ich habe vor ein paar Monaten einen Befehl gefunden, mit dem mein Bash-Verlauf automatisch vervollständigt wird, wenn ich auf den Aufwärtspfeil drücke:

$ vim fi

Drücken Sie 

$ vim file.py

Ich würde dies gerne auf meinem neuen Computer einrichten, da dies viel Zeit spart, wenn ich eine große Historie führe. Das Problem ist, dass ich mich nicht erinnern kann, wo es erwähnt wurde und das Lesen von endlosen Bash-Referenzen und Tutorials hat leider auch nicht geholfen.

Kennt jemand den Befehl?

129
blokkie

Wahrscheinlich so etwas wie

 # ~/.inputrc 
 "\ e [A": Verlaufssuche rückwärts 
 "\ e [B": Verlaufssuche vorwärts 

oder äquivalent,

 # ~/.bashrc 
 wenn [[$ - == * i *]] 
 dann 
 bind '"\ e [A": history-search -backward '
 bind' "\ e [B": History-Search-Forward '
 fi 

(Die if-Anweisung prüft den interaktiven Modus.)

Normalerweise sind Up und Down an die Readline-Funktionen previous-history Bzw. next-history Gebunden. Ich ziehe es vor, PgUp/PgDn an diese Funktionen zu binden, anstatt den normalen Betrieb von Auf/Ab zu verschieben.

 # ~/.inputrc 
 "\ e [5 ~": Verlaufssuche rückwärts 
 "\ e [6 ~": Verlaufssuche vorwärts 

Nachdem Sie ~/.inputrc Geändert haben, starten Sie Ihre Shell neu oder verwenden Sie Ctrl+XCtrl+R um es erneut zu lesen ~/.inputrc.


Übrigens, wenn Sie relevante Unterlagen suchen:

Bash verwendet Die GNU Readline Library für die Shell-Eingabeaufforderung und den Verlauf.

218
ephemient

Aktualisieren Sie .inputrc mit folgendem Befehl:

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

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

Wenn set enable-keypad on ist in deinem ~/.inputrc Wie einige Benutzer von st ( suckless simple terminal ) vielleicht wissen, dass sich die Pfeiltasten im Tastaturmodus befinden. Ubuntu wird mit diesem nützlichen /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

Ich bin mir nicht sicher, ob du alles brauchst, aber es könnte nicht schaden, in deinem ~/.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

Dies ist auch das gleiche Thema: Meine Cursortasten funktionieren nicht und auch dieses xterm: Sondertasten

1
Mauricio Robayo

Verwenden Sie dies mit ohmyzsh in Ihrem . Zshrc :

bindkey '^[OA' history-search-backward
bindkey '^[OB' history-search-forward

Zum Nachladen source ~/.zshrc oder Terminal neu starten.

Quelle: https://superuser.com/a/418299/7168

1