Jako użytkownik Linuksa jestem bardzo przyzwyczajony do przeskakiwania od słowa do słowa w vim / nano za pomocą ALT+ leftlub right.
Wydaje się, że to nie działa poprawnie przy użyciu iTerm, używam zsh, próbowałem dodać;
bindkey -e
bindkey '^[[1;9C' forward-word
bindkey '^[[1;9D' backward-word
Działa, ale tylko w Zsh, potem skomentowałem te linie i dodałem w iTerm skrót klawiaturowy;
Działa, ale tylko dla ALTleft
Jak mogę sprawić, by działał również dla prawej strzałki?
Zacznij od wyświetlenia kodu klucza wysyłanego przez terminal do vima:
W powyższym przykładzie uruchomiłem polecenie sed i nacisnąłem Alt + Left.
Jest
^[[1;9D
to sekwencja ze znakiem ucieczki wysyłana do vima, dzięki czemu możemy go użyć do naszego mapowania.Dodaj do vimrc:
źródło
Przeczytałem inny post opisujący, że dla opcji lewy i prawy opcję musisz powiązać je odpowiednio z działaniami ^ [b i ^ [f. Oznacza to, że przypisujesz je do „Wyślij sekwencję zmiany znaczenia” i przypisujesz klawisz b i f.
http://elweb.co/making-iterm-2-work-with-normal-mac-osx-keyboard-shortcuts/
źródło
Żadna z tych odpowiedzi nie działała dla mnie. W końcu załadowałem maszynę wirtualną z linuksem i sprawdziłem, co dostanę
<Alt-ARROW>
.4 sekwencje specjalne, które działały dla mnie, to:
<Alt+Up>
:[1;3A
<Alt+Down>
:[1;3B
<Alt+Right>
:[1;3C
<Alt+Left>
:[1;3D
Uważaj, aby edytować klucze profilu, a nie główne, które zostaną zastąpione kluczami profilu (gdzie Alt + Strzałki są domyślnie ustawione na sekwencję heksadecymalną, która nie działała z vimem).
źródło
Po prostu inne możliwe rozwiązanie, vim oferuje ruchy słów samodzielnie, patrz:
źródło