iTerm2 Vim alt + strzałka w prawo / w lewo

13

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;

wprowadź opis zdjęcia tutaj

Działa, ale tylko dla ALTleft

Jak mogę sprawić, by działał również dla prawej strzałki?

seds
źródło

Odpowiedzi:

10

We właściwościach iTerm przejdź do Profile -> Klucze i tam ustaw

  • Do ⌥→wysyłania sekwencji ucieczki[1;5C
  • Do ⌥←wysyłania sekwencji ucieczki[1;5D

wprowadź opis zdjęcia tutaj

eiennohito
źródło
To mi nie działa. Sekwencje specjalne są wysyłane, ale vim przesuwa tylko jedno pole tam i z powrotem. Uruchamianie domyślnego vima 7.3 dostarczanego z OS X 10.8. Idealnie, chciałbym to zmienić po stronie vima, nie zmieniając domyślnych ustawień emulatora terminala (ponieważ spowoduje to lepszą przenośność).
slhck,
To dziwne, działa zarówno w vimie (z homebrew, nie domyślnym), jak i zsh z domyślną konfiguracją z oh-my-zsh (w ~ / .oh-my-zsh / lib / key-bindings.sh).
eiennohito,
Tu też nie działa, mogę użyć Alt + strzałka w ZH, w Vimie działa tylko z Shift + strzałka :(
seds
Sprawdziłem to jeszcze raz na dostępnych systemach zdalnych (ubuntu 13.04, stabilny debian i linux naukowy) i działa wszędzie. Jaka jest moc wyjściowa po naciśnięciu Control + V, ⌥ →? Dla mnie jest to ^ [[1; 5C
eiennohito,
Działa dla mnie: iTerm / Vi + zsh
Petro Semeniuk
7

Zacznij od wyświetlenia kodu klucza wysyłanego przez terminal do vima:

$ sed -n l
^[[1;9D 

W powyższym przykładzie uruchomiłem polecenie sed i nacisnąłem Alt + Left.

Jest ^[[1;9Dto sekwencja ze znakiem ucieczki wysyłana do vima, dzięki czemu możemy go użyć do naszego mapowania.

Dodaj do vimrc:

map <Esc>[1;9D :tabn<CR>
lfender6445
źródło
Dzięki, to mi działało.
j5shi
0

Ż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).

Jerska
źródło
-1

Po prostu inne możliwe rozwiązanie, vim oferuje ruchy słów samodzielnie, patrz:

:help word-motions
tnull
źródło
2
Powinieneś dołączyć niezbędne informacje zamiast po prostu umieszczać tutaj odniesienie.
pabouk