GNU/Linux >> Linux Esercitazione >  >> Linux

Come rimappare Control-w in Bash?

Ho letto una serie di risposte a domande simili sia in questo forum che altrove, ma non riesco a farlo funzionare per me.

Sto cercando di rimappare Ctrl +C per eliminare la parola avanti piuttosto che indietro. So che posso usare Esc +D fallo, ma questo è anche un esercizio di apprendimento per me.

Usando quello che ho letto, ho aggiunto quanto segue in ~/.inputrc :

$include /etc/inputrc
Control-w: kill-word
  • La prima riga è, a quanto pare, richiesta se voglio includere gli altri binding.
  • Per il secondo, ho provato Control-w e "\C-w" e per il comando ho provato kill-word e shell-kill-word .
  • Per provare le modifiche ho provato bind -f ~/.inputrc , Ctrl +X , Ctrl +R , bash -l e semplicemente aprendo un nuovo terminale.

Presumo di aver perso qualche passaggio importante, o semplicemente di aver frainteso, ma sto finendo le idee.

Sono su Centos 8.

Risposta accettata:

La libreria readline (che è ciò che inputrc configures) imposta i collegamenti corrispondenti ai collegamenti del driver del terminale per l'input cotto. Queste sono comunemente conosciute come chiavi stty perché possono essere configurate con il comando stty . Ctrl +C è l'associazione per eliminare la parola precedente (werase ) nell'interfaccia del terminale cotto.

Tali collegamenti hanno la precedenza sui collegamenti espliciti in .inputrc . Per disattivare questo comportamento, aggiungi questa riga al tuo .inputrc :

set bind-tty-special-chars off

Se non hai configurato associazioni di tasti del terminale non predefinite con stty , penso che questo non influirà sui tuoi binding bash.


Linux
  1. Come scrivere un ciclo in Bash

  2. Come rilevare Bash>=4.0?

  3. Come concatenare stringhe in Bash

  4. Come analizzare un file CSV in Bash?

  5. Come eseguire il timeout di un gruppo di comandi in Bash

Come personalizzare il prompt di Bash in Linux

Come creare alias Bash

Come leggere un file riga per riga in Bash

Come confrontare le stringhe in Bash

Come eseguire uno script Bash

Come impostare la variabile d'ambiente in Bash