Jak naprawić strzałki Ctrl + w Vimie?

26

Używam Putty -> Suse box -> vim 7.2kombinacji do edycji i chcę ponownie przypisać kombinację klawiszy Ctrl + strzałki do określonego zadania. Ale z jakiegoś powodu Vim ignoruje skrót i przechodzi do trybu wstawiania i wstawia znak „D” (po lewej) z „C” (po prawej).

Która część konfiguracji klawiatury / terminala jest winna i jak to naprawić?

Alex B.
źródło
PuTTY nie wysyła użytecznych odrębnych sekwencji dla strzałek kontrolnych. Żadna z sugerowanych odpowiedzi nie jest poprawna (ani przydatna).
Thomas Dickey,

Odpowiedzi:

27

Dowiedz się dokładnie, jaką sekwencję zmiany znaczenia wysyła twój terminal Ctrl+, wpisując Ctrl+ V, Ctrl+ strzałkę w trybie wstawiania: to dosłownie wstawi ESCznak wiodący (pokazany jak ^[w vimie), a następnie resztę sekwencji ucieczki. Następnie powiedz vimowi o tych sekwencjach ucieczki za pomocą czegoś podobnego

map <ESC>[5D <C-Left>
map <ESC>[5C <C-Right>
map! <ESC>[5D <C-Left>
map! <ESC>[5C <C-Right>

Wydaje mi się, że Putty ma domyślne ustawienie trybu klawiszy kursora aplikacji, które jest niewygodne (nie pamiętam dlaczego), możesz najpierw zmienić to ustawienie.

Zauważ, że chociaż sekwencje specjalne różnią się między terminalami, konflikty (tj. Sekwencje specjalne, które odpowiadają różnym kluczom w różnych terminalach) są rzadkie, więc nie ma szczególnej potrzeby próbowania zastosowania mapowań tylko dla określonego typu terminala.

Gilles „SO- przestań być zły”
źródło
Jak powiedzieć, jaka sekwencja Escape jest wysyłana?
Alex B
@Alex: Próbowałem wyjaśnić moje wyjaśnienie, narzekać, jeśli nadal nie rozumiesz mojego pierwszego zdania.
Gilles „SO- przestań być zły”
Możesz także uruchomić od -alub od -cjeśli kopniesz ósemkę, a następnie wpisz odpowiednie klucze. Zobacz „dodane” w mojej odpowiedzi na przykład.
msw
Przepraszam, że wróciłem do tego pytania tak późno, ale zorientowałem się, że PuTTY nadal wysyła klawisze kursora aplikacji do terminala, nawet po jego całkowitym wyłączeniu . Brakuje mi tego, co jeszcze powinienem zrobić, żeby to zniknęło.
Alex B
@Alex: Nie musisz zmuszać go do odejścia, możesz opowiedzieć o nich swoim aplikacjom (które według mnie są ścieżką najmniejszego oporu). Lub możesz zastąpić PuTTY jedną z alternatyw, takich jak mintty plus Cygwin ssh (ale to nie na temat tej strony).
Gilles „SO- przestań być zły”
7

Najlepszym rozwiązaniem jest sprawdzenie konfiguracji trybu klawiszy kursora aplikacji PuTTY .

Domyślne sekwencje wysyłane są ESCjako prefiks, [po których następuje Append lub hange Club inne rzeczy wprowadzające cię w tryb wstawiania.

dodał, postępując zgodnie z Gilles

Nieco bardziej wyraźną wersję ucieczki ^ V można zobaczyć w od (1). Oto ja piszący ^ W górę, ^ W dół, ^ W prawo, ^ W lewo na moim terminalu:

$ od -a
0000000 esc   [   1   ;   5   A esc   [   1   ;   5   B esc   [   1   ;
0000020   5   C esc   [   1   ;   5   D

Więc mój terminal wysyła ^[[1;5Apo naciśnięciu Ctrl+

msw
źródło
Wyłączenie trybu klawiszy kursora aplikacji nie pomaga.
Alex B
0

dla tego i innych problemów z klawiaturą vima po prostu to robię

vim ~/.vimrc
set nocompatible
zainengineer
źródło