W OSX mogę po prostu przytrzymać optionklawisz i naciskać lewy klawisz kursora, aż dojdę do słowa, które muszę edytować (lub w Vi mogę po prostu nacisnąć b, ale nie byłem w stanie wymyślić, jak to zrobić w Terminalu jeszcze...
W OSX mogę po prostu przytrzymać optionklawisz i naciskać lewy klawisz kursora, aż dojdę do słowa, które muszę edytować (lub w Vi mogę po prostu nacisnąć b, ale nie byłem w stanie wymyślić, jak to zrobić w Terminalu jeszcze...
Odpowiedzi:
Aby ustawić powiązanie klawiszy: Najpierw musisz dowiedzieć się, jakie kody klawiszy tworzy sekwencja klawiszy Ctrl+ Left. Wystarczy użyć polecenia, cat
aby wyłączyć wszelkie interferencje z istniejącymi powiązaniami klawiszy, a następnie wpisać sekwencję klawiszy. W moim systemie (Linux) wygląda to tak:
$ cat
^[[1;5D
Naciśnij Ctrl+, daby wyjść z cat. Teraz dowiedziałeś się, że Ctrl-Left wydaje 6 kluczowych kodów:
Teraz możesz wydać polecenie bind:
bind '"\e[1;5D": backward-word'
Funkcja bash, którą chcesz, to backward-word
. Możesz uruchomić, bind -q backward-word
aby uzyskać listę klawiszy powiązanych z tą funkcją. Jednym wspólnym wiązaniem jest Esc+b
Ponadto wiele terminali obsługuje Ctrl+ Left(ten sam skrót klawiszowy, którego można używać w X, aby przeskakiwać do tyłu o słowo)
backward-word can be invoked via "\eb".
ale jak powiązać Control + Lewo zamiast Esc + B? Jedną wadą Esc + b, którą już widzę, jest to, że muszę odpuścić klawisz Esc za każdym razem, gdy mogę cofnąć słowo, czy nie ma lepszego sposobu?
set editing-mode vi
:)
Domyślny skrót klawiszowy w Bash backword-word
to Alt+ b. Ten sam wynik można uzyskać za pomocą Esc+ b. Powinieneś spróbować tych przed edycją skrótów klawiszowych.
Użyj bind
polecenia, aby edytować lub bind -q [name]
uzyskać aktualny skrót klawiaturowy dla określonej akcji.
Alt + f