Jak wygodnie przełączać się w tryb komend vi w wierszu komend zsh?


22

W vi zamapowałem „jj” na ucieczkę, aby móc przejść do trybu poleceń bez używania irytującego klawisza Escape. Teraz chcę mieć to samo w przypadku edycji wiersza poleceń, dla której używam trybu vi. Znalazłem już następujące rozwiązanie:

bindkey '^j' vi-cmd-mode

pozwala zmienić z Control-J w tryb poleceń. Wciąż szukam rozwiązania bez klawiszy modyfikujących jako „jj” lub czegoś podobnego.


4
Dlaczego nie odwzorować Caps Lock to Escape?
Kyrias

Odpowiedzi:


30

Uwaga: powinieneś sprawdzić man zshzlewiele korzyści związanych z dostosowywaniem bindkeyi emulowaniem GNU readline.

W ten sposób zmapowałem jjdo Esc:

bindkey -M viins 'jj' vi-cmd-mode

Jeśli chcesz rozróżnić tryb wstawiania od trybu normalnego, możesz wypróbować sugestię, o której wspomina akira tutaj


Tak! działa świetnie. wielkie dzięki!
Eman Resu,

Czy są jakieś wymagania wstępne, które należy spełnić, aby działało w Zsh? Lub sposoby debugowania powiązań klawiszy? Po wstawieniu tego polecenia nic się nie dzieje. jj nadal nie działa.
UltraMaster,

5
Miałem zbyt niski KEYTIMEOUT, to był powód.
UltraMaster,

@Ultramaster ma świetny punkt. Jeśli już ustawiasz KEYTIMEOUT dla prędkości, zalecam> = 20 milisekund. Takie jakexport KEYTIMEOUT=20
statek
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.