Niedawno przerzuciłem się z bash na zsh, jednak brakuje mi Alt+ LeftArrowKeyi Alt+, RightArrowKeyaby przechodzić tam i z powrotem po jednym słowie.
W tej chwili, jeśli naciśnę Alt+ LeftArrowKey, cofnę się o kilka liter i utknę. Nie cofnę się dalej i nie wrócę do końca linii z Alt+, RightArrowKeyjak bym się spodziewał. Nie mogę nawet użyć klawiszy strzałek, aby przejść do końca linii, tylko do przedostatniej. Nie można również wprowadzić nowych znaków w linii lub nawet usunąć.
Jak mogę odzyskać mój ukochany skrót?
Jestem na Mac OS X i używam terminala, jeśli to ważne.
^[[D
za mnie, podczas gdy ctrl + v raportował^[OD
. Sugestia Ctrl + v zadziałała, ale cat nie. Co więcej, ctrl + v zgłaszało to samo zarówno dla alt + <- jak i alt + ->. Udało mi się dodać te dwa, patrząc na wyjście kota i zastępując dowolne „[” przez „O”^[^[[C
dla słowa do przodu i^[^[[D
dla słowa do tyłu, ale aktualizacja dla tych w .zshrc nie działała z jakiegoś powodu.bindkey "^[^[[D" backward-word
ibindkey "^[^[[C" forward-word
w ~ / .zprofile zadziałało dla mnie!Dla każdego, kto używa iTerm, niezależnie od powłoki
Wszystkie oferowane tutaj rozwiązania są moim zdaniem podejściem wstecznym. Zasadniczo mówisz powłoce, aby nasłuchiwała jakiejś sekwencji esc lub innego powiązania klawiszy, które ustawiłeś w swoim terminalu, powodując problemy ze zgodnością podczas przełączania powłok (jeśli używasz SSH do innej powłoki, przełącz się z BASH na ZSH itp. I przegrywasz niektóre, jeśli nie wszystkie, przypisania klawiszy).
Większość powłok ma zestaw domyślnych sekwencji, które są wstępnie powiązane. Co więcej, chociaż nie są w 100% spójne, są wystarczająco blisko. Tak więc najłatwiejszym sposobem na utworzenie przypisania klawiszy dla określonej akcji w powłoce jest poinformowanie aplikacji terminala, aby powiązała się z domyślnymi przypisaniami klawiszy, które są spójne w różnych powłokach.
Napisałem ściskanie rozwiązanie dla coraz terminal odpowiedzieć tak blisko rodzimych skróty klawiszowe mac tutaj
Otwórz preferencje iTerm ⌘+ ,i przejdź do
Profiles
zakładki (Keys
zakładka może być używana, ale dodanie przypisania klawisza do twojego profilu umożliwia zapisanie twojego profilu i zsynchronizowanie go z wieloma komputerami) ikeys
pod-zakładki i wprowadź następujące informacje:Przesuń kursor o jedno słowo w lewo
Przesuń kursor o jedno słowo w prawo
Powinno to zapewnić pożądane zachowanie nie tylko w ZSH, ale także jeśli łączysz się przez SSH z serwerem z systemem BASH, irb / pry, węzłem itp.
źródło
bindkey | grep forward-word
który powinien zostać"^[f" forward-word
zwrócony, ale jeśli nie, masz 2 opcje. mapować do jednego z innych zwróconych lub dodać"^[f" forward-word
do swojego.zshrc
."^[f"
wydaje się , że jest to najbardziej konsekwentnie używane powiązanieforward-word
używane w różnych powłokach i jedyne ustawione domyślnie w mojej wersji basha.Dodanie następującego pliku do ~ / .zshrc działało dla mnie na OSX Mountain Lion.
źródło
bindkey "\e\e[D" backward-word
bindkey "\e\e[C" forward-word
Na MacOS High Siera 10.13.6 lub Mojave 10.14.2 i przy użyciu iTerm2 z ZSH Aby przejść od słów, muszę umieścić w ten sposób:
Inne rozwiązania nie działają dla mnie
źródło
Chociaż nie jest to ścisła odpowiedź na Twoje pytanie, domyślne wiążące dla
forward-word
ibackward-word
toalt-f
odpowiednio.alt-b
.Działa to wszędzie, nie wymaga opuszczania wiersza głównego i ma ładną właściwość mnemoniczną (f = do przodu, b = do tyłu), a jednocześnie jest spójne z
ctrl-f
ictrl-b
będącforward-character
ibackward-character
.Wyrwij swoje klawisze strzałek!
źródło
Żeby to zadziałało, użyłem tej odpowiedzi , jednak musiałem zamienić kody (lewy <-> prawy)
⌥ + ← Wyślij kody szesnastkowe: 0x1b 0x66
⌥ + → Wyślij kody szesnastkowe: 0x1b 0x62
i dodaj do my
~/.zshrc
źródło
bindkey
zamiast tego zmienił swoje , łączył^[f
sięforward-word
, a nie łączyłbackward-word
.Na Mavericks (10.9.4) kod to 1; 5 ... więc do powiązania alt ze strzałkami mam mój plik .zshrc, używając tego:
Możesz użyć CTRL + V, a następnie polecenia, którego chcesz użyć
w Yosemite użyj rozwiązania Roba
źródło
bindkey "[C" forward-word bindkey "[D" backward-word
W zsh możesz użyć
bindkey
polecenia, aby wyświetlić skróty klawiaturowe.Służy
bindkey
do odkrywania opcji dostępnych bez niestandardowych skrótów klawiszowych.Mianowicie,
^[b
aby cofnąć słowo i^[f
przejść o jedno słowo do przodu.źródło