Niezależnie od istniejących rozwiązań, konwencjonalnym rozwiązaniem w Vimie jest ponowne mapowanie kluczy w twojej .vimrckonfiguracji. W rzeczywistości wielu użytkowników Vima ma łatwiej dostępny klucz przypisany do mapowania Esc. Popularne opcje to Ctrl+ Enter, lub jjitd.
Aby to włączyć, po prostu włóż do swojego programu coś podobnego .vimrci załaduj ponownie / uruchom ponownie Vima:
Eyup, to jest sposób Vima. Innym popularnym sposobem promowanym przez Learn Vim the Hard Way (książka) jestinoremap jk <Esc>
grochmal
To dobre rozwiązanie, ale na czym polega problem z używaniem tylko Ctrl + Enter + j?
Sandra Ross,
@SandraRoss Możesz naprawdę użyć dowolnej kombinacji klawiszy, którą sobie wyobrażasz (choć strzeż się, że niektóre, np. Ctrl-Enter, nie działają na macOS). To powiedziawszy, Ctrl + Enter + j wydaje mi się trudniejszy do pisania, a ja szczerze mówiąc nie wiem, czy możesz nawet skonfigurować trzykluczowe kombinacje z dwoma niemodyfikatorami (Enter, j) w Vimie.
Konrad Rudolph,
Ok, rozumiem. W rzeczywistości Ctrl + Enter + jj nie działa dla mnie, ponieważ w rzeczywistości używam macos X. Przynajmniej mógłbyś mi powiedzieć, co mam wpisać tylko Ctrl + j.
Sandra Ross,
@SandraRoss Do tego inoremap <C-j> <Esc>powinno działać. :-)
Konrad Rudolph,
32
Ctrl- [wysyła ten sam znak do terminala co Escklucz fizyczny . Ten drugi jest ogólnie skrótem do pierwszego.
Kiedyś miałem prawdziwy terminal vt220, a jego klawiatura nie ma Escapeklawisza. Naciśnięcie Ctrl+[było jedynym sposobem na wygenerowanie Escape.
Kusalananda
11
Jeśli chcesz mieć możliwość korzystania z jednego klucza, jako czyste rozwiązanie * nix (bez mapowań Vima) możesz zdefiniować inny klucz jako Esc. Podobnie jak użytkownicy Emacsa mapują CapsLockna Ctrlniektórych użytkowników Vima (w tym mnie) CapsLockna Esc. Działa to dla każdego * nix używającego X11.
Użyj xev -event keyboard(a następnie naciśnij CapsLock), aby uzyskać kod CapsLockklucza (dla mnie jest to kod 66). Następnie możesz użyć xmodmapdo zmiany przypisania klucza:
Aby uzyskać to przy logowaniu, możesz dodać xmodmapwyrażenia ~/.Xmodmapw następujący sposób:
remove Lock = Caps_Lock
keycode 66 = Escape
Chociaż w drugiej części YMMV, ponieważ nie wszystkie menedżery wyświetlania działają ~/.Xmodmap. Konieczne może być dodanie xmodmap .Xmodmapdo .xinitrcniektórych z nich.
CTRL-C to ASCII 0x03, wysyła SIGINT do powłoki - to nie to samo co ESC.
kot
@cat To działa w zasadzie tak samo w vimie. Zawsze używam Ctrl-C zamiast Esc
Erik W
1
@cat: Dostajesz go za darmo, ponieważ vim ma ten moduł obsługi. Sam nie musisz nic robić. Ta odpowiedź działa natychmiast po wyjęciu z pudełka; Właśnie tego spróbowałem. Czy działa ogólnie w przypadku dowolnej aplikacji? Nie, ale nie o to poproszono.
Wyścigi lekkości z Monicą
2
@cat: Naprawdę? Tytuł brzmi „Jak wysłać sygnał ESC do vima, gdy mój klawisz esc nie działa?” , jedynym znacznikiem jest vim , a problem opisany w pytaniu dotyczy ucieczki z trybu wstawiania Vima. Oto podsumowująca część pytania: „Czy istnieje inny klucz używany do zwolnienia trybu wstawiania”. Jeśli nie jest to specyficzne dla Vima i jego trybu wstawiania, to nie wiem, co to jest!
Wyścigi lekkości z Moniką
1
@LightnessRacesinOrbit Cóż, kiedy początkowo zobaczyłem tytuł, był to „Kolejny klucz użyty do Esc” i pytanie wcale nie wyglądało tak specyficznie vim. Przepraszam! ¯_ (ツ) _ / ¯
cat
-3
Ctrl + F2
Jest domyślnie włączony. Nie trzeba konfigurować żadnych ustawień.
Przejdziesz do trybu normalnego, w którym możesz to zrobić :q! or :wq.
[
Odpowiedzi:
Niezależnie od istniejących rozwiązań, konwencjonalnym rozwiązaniem w Vimie jest ponowne mapowanie kluczy w twojej
.vimrc
konfiguracji. W rzeczywistości wielu użytkowników Vima ma łatwiej dostępny klucz przypisany do mapowania Esc. Popularne opcje to Ctrl+ Enter, lub jjitd.Aby to włączyć, po prostu włóż do swojego programu coś podobnego
.vimrc
i załaduj ponownie / uruchom ponownie Vima:Więcej informacji i alternatywy
źródło
inoremap jk <Esc>
inoremap <C-j> <Esc>
powinno działać. :-)Ctrl- [wysyła ten sam znak do terminala co Escklucz fizyczny . Ten drugi jest ogólnie skrótem do pierwszego.
źródło
Escape
klawisza. NaciśnięcieCtrl+[
było jedynym sposobem na wygenerowanieEscape
.Jeśli chcesz mieć możliwość korzystania z jednego klucza, jako czyste rozwiązanie * nix (bez mapowań Vima) możesz zdefiniować inny klucz jako Esc. Podobnie jak użytkownicy Emacsa mapują CapsLockna Ctrlniektórych użytkowników Vima (w tym mnie) CapsLockna Esc. Działa to dla każdego * nix używającego X11.
Użyj
xev -event keyboard
(a następnie naciśnij CapsLock), aby uzyskać kod CapsLockklucza (dla mnie jest to kod 66). Następnie możesz użyćxmodmap
do zmiany przypisania klucza:Aby uzyskać to przy logowaniu, możesz dodać
xmodmap
wyrażenia~/.Xmodmap
w następujący sposób:Chociaż w drugiej części YMMV, ponieważ nie wszystkie menedżery wyświetlania działają
~/.Xmodmap
. Konieczne może być dodaniexmodmap .Xmodmap
do.xinitrc
niektórych z nich.źródło
Możesz spróbować Ctrl-C, który działa dla mnie i moim zdaniem jest łatwiejszy niż ESC. Nie jestem jednak pewien, czy jest domyślnie włączony.
źródło
0x03
, wysyła SIGINT do powłoki - to nie to samo co ESC.vim
. Przepraszam! ¯_ (ツ) _ / ¯Ctrl + F2
Jest domyślnie włączony. Nie trzeba konfigurować żadnych ustawień.
Przejdziesz do trybu normalnego, w którym możesz to zrobić
:q! or :wq
.źródło
Ctrl+F2
może wysłać ucieczkę, ale wyśle także inne rzeczy.