Czy w terminalu można mieć powiązania klawiszy vim?

42

Przyzwyczajam się do vimowania powiązań (jak naciskanie w, aby przejść do słowa, dw, aby usunąć słowo itp.) I jego trybów (wstawianie, normalne, wizualne) i, z ciekawości chciałbym wiedzieć: czy jest jakiś rodzaj implementacji tego zachowania trybów i powiązań z vima do mojego terminala?

Masz tryb wstawiania, tryb normalny i takie ...

Ktoś nadal używa ciebie MS-DOS
źródło

Odpowiedzi:

45

Ma tryb wstawiania i tryb normalny (tryb wstawiania jest domyślny i ucieczka do trybu normalnego), ale nie ma trybu wizualnego.

W bash: set -o viMożesz uruchomić go w wierszu poleceń tylko dla tej sesji lub dodać do pliku .bashrc.

Wiele programów używa readlinedo wprowadzania danych, a każdy z nich może używać skrótów klawiszowych w stylu vi, konfigurując je za .inputrcpomocą

set editing-mode vi
set keymap vi

W zsh, jeśli zmienisz EDITORzmienną środowiskową, powłoka ją dopasuje.

Shawn J. Goff
źródło
1
Całkiem schludnie. Czy wiesz, czy można mieć również jakiś plik .vimrc, ale do takich zastosowań? Na przykład, dodając różne mapowania do <ESC> ...
Ktoś nadal używa ciebie MS-DOS
2
@ Somebody: Nie, .vimrcponieważ nadal używasz wbudowanego edytora powłoki, ale możesz skonfigurować powiązania klawiszy .inputrcdla wszystkich aplikacji readline (takich jak bash), w .bashrcszczególności dla bash, .zshrcdla zsh.
Gilles „SO- przestań być zły”
1
Kasa wbudowanego wiązania
Shawn J. Goff,
3
Zauważ, że w OS X musisz umieścić put -o vi~ / .bash_profile zamiast ~ / .bashrc.
Steve Jorgensen
6
Zauważam, że wygląd kursora nie zmienia się w różnych trybach bash w / vi. Czy jest jakiś sposób, aby to zrobić? Byłoby miło mieć wizualne wskazanie, w jakim trybie jestem.
Steve Jorgensen