Dlaczego moje klawisze strzałek nie działają w vimie pod iTerm?

11

Działają dobrze, jeśli używam terminalu i rozpoczynam sesję vima, ale pod iTerm muszę uciekać się do używania HJKL do wykonywania ruchów lewo-góra-dół-prawo.

Zarówno w terminalu, jak i iTerm TERM = kolor xterm. Mój .vimrcjest dość chudy i nie ma w nim żadnych przypisań klawiszy, które spowodowałyby ten problem.

iTerm v0.10.

Ian C.
źródło

Odpowiedzi:

5

Spróbuj wykonać następujące czynności:

  1. Z Zakładki menu wybierz Zarządzaj zakładkami ... .
  2. Wybierz Domyślną zakładkę i kliknij ikonę edycji.
  3. Zmień ustawienie Klawiatura na Globalne .
strażnik
źródło
Mam ten sam problem na iTerm2. Nie ma menu Zakładki :(
Wei Hu
1
@Wei: W iTerm2 są nazywane profilami. Profile -> Otwórz profile ... i stamtąd możesz załadować ustawienia domyślne xterm dla klawiatury dla profili.
Ian C.
@Ian, dzięki. Znalazłem ustawienia, ale załadowanie ustawień domyślnych xterm nie rozwiązało problemu.
Wei Hu
@WeiHu: Oryginalną sugestią od wartownika było załadowanie ustawienia globalnego, a nie xterm, i spodziewam się, że przeniesie to do iTerm2 - spróbuję, jak tylko zainstaluję iTerm2. Wiem, że Ian C. napisał Xterm, ale może to była literówka.
Blaisorblade,
W przypadku iTerm2 dostępna jest sekcja FAQ: iterm2.com/#/section/faq Używam „Zgłoś typ terminala: xterm-256color” wraz z domyślnymi skrótami klawiszowymi xterm; możesz wypróbować te z Terminal.app, ale skróty klawiszowe wydają się nie mieć związku. Dla mnie jedyną ważną rzeczą było ustawienie Alt, aby zachowywał się jak + Esc zamiast Meta, ale nie powinno to dotyczyć strzał (dla mnie naprawiono Alt-B i znajomych pod ekranem).
Blaisorblade,
4

Poniższe działało dla mnie.

W iTerm2:

  • Profile -> Profile otwarte ...
  • Edytuj profile ...
  • Karta Klawisze
  • Z listy rozwijanej Load Preset ... wybierz Kompatybilność z Terminal.app
Gerald Boersma
źródło
Dziękuję Gerald, jesteś dżentelmenem i giermkiem.
Snickers3192
2

Tak naprawiłem:

nnoremap <silent> <ESC>^[A <Nop>
nnoremap <silent> <ESC>^[B <Nop>
nnoremap <silent> <ESC>^[D <Nop>
nnoremap <silent> <ESC>^[C <Nop>

Uwaga:

„^ [” Znaków nie musi być wpisane, zamiast je zdobyć wykonując: - Va naciśnięcie strzałki odpowiadający pozycji kursora (góra, dół, lewo, prawo).

Testowane z: iTerm2 (kompilacja 1.0.0.20140629)

fmendez
źródło
1

Udało mi się to rozwiązać za pomocą iTerm2 Build 3.0.15 i następującego fragmentu mojego .vimrc:

" Map alternate key combination for Esc.
noremap <c-[> <Esc>
" Map arrow keys for nomal mode.
nnoremap <silent> <Esc><Up>A <Nop>
nnoremap <silent> <Esc><Down>B <Nop>
nnoremap <silent> <Esc><Right>C <Nop>
nnoremap <silent> <Esc><Left>D <Nop>

HTH.

jerome
źródło