GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie ändere ich die Vervollständigung des Bash-Verlaufs, um das zu vervollständigen, was bereits auf dem Spiel steht?

Wahrscheinlich so etwas wie

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

oder gleichwertig,

# ~/.bashrc
if [[ $- == *i* ]]
then
    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 gebunden und next-history beziehungsweise. Ich ziehe es vor, PgUp/PgDn an diese Funktionen zu binden, anstatt die normale Operation von Up/Down zu ersetzen.

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

Nachdem Sie ~/.inputrc geändert haben , starten Sie Ihre Shell neu oder verwenden Sie Strg +X , Strg +R um es anzuweisen, ~/.inputrc erneut zu lesen .

Übrigens, wenn Sie nach relevanter Dokumentation suchen:

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


Aktualisieren Sie .inputrc mit Folgendem:

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

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

Wenn set enable-keypad on befindet sich in Ihrem ~/.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 ausgeliefert :

# 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 also nicht sicher, ob Sie alle benötigen, aber es könnte nicht schaden, wenn Sie ~/.inputrc dabei haben :

# 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


Linux
  1. Wie ändere ich die Standardzeilenlänge für Od und Hexdump?

  2. So ändern Sie die Anzahl der im Bash-Verlauf gespeicherten Befehle

  3. Wie liest man die vorletzte Zeile in einer Datei mit Bash?

  4. Was ist die Verwendung von $ # in Bash

  5. Gewusst wie:Unbegrenzter Bash/Shell-Verlauf?

Bash-Tipps für den Alltag an der Kommandozeile

So kommentieren Sie in Bash

So lesen Sie eine Datei Zeile für Zeile in Bash

So zeigen Sie den Bash-Verlauf ohne Zeilennummern an

Wie ändere ich schnell das erste Wort in einem Bash-Befehl?

Wie finde ich die Zeilennummer in Bash, wenn ein Fehler aufgetreten ist?