W grze są dwa edytory linii: podstawowy edytor linii dostarczany przez jądro (edytor linii tty w trybie kanonicznym) oraz edytor linii bash (implementowany przez bibliotekę readline). Oba mają komendę usuwania do poprzedniego słowa, która domyślnie jest powiązana z Ctrl+ W. Klucz można skonfigurować dla edytora linii tty w trybie kanonicznym stty werase
; bash imituje powiązanie klucza, które znajduje w ustawieniu tty, chyba że zostanie zastąpione w jego własnej konfiguracji.
werase
Nie można skonfigurować działanie w edytorze linii tty. Zawsze usuwa (ASCII) słowa rozdzielone białymi znakami. Rzadko wchodzi się w interakcję z edytorem linii tty - to jest to, co dostajesz, np. Gdy piszesz cat
bez argumentów. Jeśli chcesz mieć fantazyjne powiązania klawiszy, możesz uruchomić polecenie pod narzędziem takim jak rlwrap, który używa readline.
Bash udostępnia dwa polecenia do usunięcia poprzedniego słowa : unix-word-rubout
( Ctrl+ wlub zgodnie z ustawieniem stty werase
) i backward-kill-word
( M-DEL
, tj. Esc Backspace), Który traktuje słowo jako ciąg znaków alfanumerycznych w bieżącym języku i_
. Jeśli chcesz Ctrl+, Backspaceaby usunąć poprzednią sekwencję znaków alfanumerycznych, nie ustawiaj stty werase
, a zamiast tego wstaw następujący wiersz w .inputrc
:
"\C-h": backward-kill-word
Zauważ, że zakłada to, że twój terminal wysyła znak Ctrl + H dla Ctrl+ Backspace. Niestety jest to jeden z tych kluczy bez standardowego wiązania ( Backspaceaw szczególności z powodów historycznych jest bałaganem ).
Istnieje również polecenie symetryczne, kill-word
które jest domyślnie powiązane z M-d
( Alt+ D). Aby powiązać go z Ctrl+ Delete, najpierw musisz dowiedzieć się, jaką sekwencję ucieczki wysyła twój terminal, a następnie dodaj odpowiednią linię w swoim .inputrc
. Wpisz Ctrl+, Va następnie Ctrl+ Delete; spowoduje to wstawienie czegoś takiego, jak ^[[3;5~
gdzie inicjał ^[
jest wizualną reprezentacją znaku ucieczki. Zatem wiązanie jest
"\e[3;5~": kill-word
Jeśli nie jesteś zadowolony z żadnej z definicji słowa, możesz podać własne w bash: zobacz mylące zachowanie skrótów klawiszowych w stylu emacs w bash