Jeśli naciśniesz ESC, aby wyjść z trybu wizualnego po zaznaczeniu tekstu, zauważalne będzie opóźnienie, zanim tekst zostanie odznaczony i wrócę do trybu normalnego (nawet jeśli wybiorę tylko 1-2 znaki). Czy można tego opóźnienia uniknąć?
Jeśli naciśniesz ESC, aby wyjść z trybu wizualnego po zaznaczeniu tekstu, zauważalne będzie opóźnienie, zanim tekst zostanie odznaczony i wrócę do trybu normalnego (nawet jeśli wybiorę tylko 1-2 znaki). Czy można tego opóźnienia uniknąć?
Odpowiedzi:
Może to być spowodowane mapowaniem na dodatkowe funkcje. Na przykład używam wtyczki tabbar i mapuje 0-9, aby przejść do bufora liczb. Ilekroć klucz jest mapowany na dodatkowe funkcje, takie jak ten, vim czeka kilka sekund po naciśnięciu, aby sprawdzić, czy zamierzasz nacisnąć dodatkowe klawisze.
Aby sprawdzić, czy ma jakieś dodatkowe mapowania, uruchom :map
i poszukaj <Esc>
w pierwszej kolumnie. Po uruchomieniu bez żadnych parametrów :map
wyświetli listę wszystkich niestandardowych mapowań. Jeśli chcesz wyświetlić tylko mapowania w trybie wizualnym, uruchom :vmap
.
Jeśli ma dodatkowe mapowania, nie znam sposobu na usunięcie pauzy, oprócz usunięcia mapowań. Przerwa jest konieczna, aby vim mógł jednoznacznie wiedzieć, jakie działania zamierzasz podjąć.
:help 'timeout'
.
Nie mam mapowania związanego z <ESC> globalnie lub w trybie Visual (wywołanie: verbose vmap <ESC> nie daje żadnych wyników), ale nadal występuje znaczne opóźnienie przy wychodzeniu z trybu Visual. Opóźnienie występuje nawet w nowych instalacjach bez vimrc. Użycie <Cc> powoduje natychmiastowe wyjście z trybu wizualnego.
Ponieważ nie lubię naciskać <Cc>, aby wyjść z dowolnego trybu, obecnie mapuję <ESC> na <Cc> w trybie wizualnym. Opuszcza tryb wizualny bez użycia przycisku <ESC>.
:vmap <ESC> <C-c>
Lub wstaw następujący wiersz do vimrc
vnoremap <ESC> <C-c>
To nie zadziała, jeśli masz mapowania w trybie globalnym lub wizualnym powiązane z <ESC>.
Esc
jest także prefiksem dla wszystkich klawiszy specjalnych, w tym nawet klawiszy strzałek.