Četl jsem řadu odpovědí na podobné otázky v tomto fóru i jinde, ale nemohu to zajistit, aby mi to fungovalo.
Snažím se přemapovat Ctrl +W smazat slovo předat spíše než dozadu. Vím, že mohu použít Esc +D udělejte to, ale je to pro mě také učení.
Pomocí toho, co jsem si přečetl, jsem do ~/.inputrc
přidal následující :
$include /etc/inputrc
Control-w: kill-word
- První řádek je zjevně povinný, pokud chci zahrnout další vazby.
- Za druhé jsem zkusil
Control-w
a"\C-w"
a pro příkaz jsem zkusilkill-word
ashell-kill-word
. - Pro vyzkoušení změn jsem zkusil
bind -f ~/.inputrc
, Ctrl +X , Ctrl +R ,bash -l
a jednoduše otevřít nový terminál.
Předpokládám, že jsem vynechal nějaký důležitý krok nebo jsem to jednoduše nepochopil, ale docházejí mi nápady.
Jsem na Centos 8.
Přijatá odpověď:
Knihovna readline (což je to, co inputrc
konfiguruje) nastaví vazby odpovídající vazbám ovladače terminálu pro předpřipravený vstup. Tyto klíče jsou běžně známé jako stty klíče, protože je lze konfigurovat pomocí příkazu stty
. Ctrl +W je vazba pro smazání předchozího slova (werase
) v rozhraní předpřipraveného terminálu.
Tyto vazby mají v .inputrc
přednost před explicitními vazbami . Chcete-li toto chování vypnout, přidejte tento řádek do souboru .inputrc
:
set bind-tty-special-chars off
Pokud jste pomocí stty
nenakonfigurovali jiné než výchozí předpřipravené vazby kláves terminálu , Myslím, že to neovlivní vaše bashové vazby.