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, cataby 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-wordaby 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-wordto Alt+ b. Ten sam wynik można uzyskać za pomocą Esc+ b. Powinieneś spróbować tych przed edycją skrótów klawiszowych.
Użyj bindpolecenia, aby edytować lub bind -q [name]uzyskać aktualny skrót klawiaturowy dla określonej akcji.
Alt + f