GNU/Linux >> Linux Esercitazione >  >> Linux

Come posso modificare il completamento della cronologia di bash per completare ciò che è già in linea?

Probabilmente qualcosa come

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

o equivalentemente,

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

(l'istruzione if verifica la modalità interattiva)

Normalmente, Up e Down sono associati alle funzioni Readline previous-history e next-history rispettivamente. Preferisco associare PgUp/PgDn a queste funzioni, invece di sostituire il normale funzionamento di Up/Down.

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

Dopo aver modificato ~/.inputrc , riavvia la tua shell o usa Ctrl +X , Ctrl +R per dirgli di rileggere ~/.inputrc .

A proposito, se stai cercando la documentazione pertinente:

Bash utilizza la libreria GNU Readline per il prompt della shell e la cronologia.


Aggiorna .inputrc con quanto segue:

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

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

Se set enable-keypad on è nel tuo ~/.inputrc come potrebbero fare alcuni utenti di st (suckless simple terminal), tieni presente che i tasti freccia sono in modalità tastiera. Ubuntu viene fornito con questo 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

Quindi non sono sicuro che ti serviranno tutti, ma potrebbe non far male avere nel tuo ~/.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

Anche questo è sullo stesso argomento:I miei tasti cursore non funzionano e anche questo xterm:tasti speciali


Linux
  1. Come dire a quale versione di Os X mi trovo dalla riga di comando?

  2. Come modificare la lunghezza della linea predefinita per Od e Hexdump?

  3. Come leggere la penultima riga in un file usando Bash?

  4. Come modificare la risoluzione di Bash per una VM Debian?

  5. Come cambiare rapidamente la prima parola in un comando Bash?

Come commentare in Bash

Come leggere un file riga per riga in Bash

Come visualizzare la cronologia di Bash senza numeri di riga

Qual è l'uso di $# in Bash

Procedura:cronologia Bash/shell illimitata?

Come cambiare il cursore Terminale dalla casella alla linea?