É possível ter ligações de teclas vim no terminal?

42

Estou me acostumando a vincular vim (como pressionar w para ir para a palavra, dw para excluir uma palavra e outras) e seus modos (inserção, normal, visual) e, por curiosidade, gostaria de saber: existe alguma tipo de implementação desse comportamento de modos e ligações do vim para o meu terminal?

Tem o modo de inserção, modo normal e ...

Alguém ainda usa você no MS-DOS
fonte

Respostas:

45

Possui modo de inserção e normal (o modo de inserção é o padrão e sai para o modo normal), mas não possui modo visual.

No bash: set -o vivocê pode executá-lo na linha de comando apenas para esta sessão ou adicioná-lo ao seu arquivo .bashrc.

Muitos programas usam readlinepara a entrada, e você pode fazer qualquer um deles usar keybindings vi de estilo através da criação de seu .inputrccom

set editing-mode vi
set keymap vi

No zsh, se você alterar sua EDITORvariável de ambiente, o shell corresponderá a ela.

Shawn J. Goff
fonte
1
Muito arrumado. Você sabe se é possível ter algum tipo de .vimrc também, mas para isso? Por exemplo, adicionando mapeamentos diferentes a <ESC> ...
Alguém ainda usa o MS-DOS
2
@ Alguém: .vimrcDesde que você ainda esteja usando o editor interno do shell, você pode configurar as ligações de teclas .inputrcpara todos os aplicativos de linha de leitura (como o bash), .bashrcespecificamente para o bash, e .zshrcpara o zsh.
Gilles 'SO- stop be evil'
1
Checkout the bind builtin
Shawn J. Goff
3
Observe que no OS X, você precisará colocar o put -o viarquivo ~ / .bash_profile em vez de ~ / .bashrc.
9788 Steve Jobs Jorgensen
6
Percebo que a aparência do cursor não muda nos diferentes modos bash w / vi key bindings. Existe alguma maneira de fazer isso? Seria bom ter uma indicação visual de que o modo em que estou.
Steve Jorgensen