Configuração do modo Bash vi como padrão para o modo de comando

14

É possível configurar o modo bash vi para que, inicialmente, ele esteja no modo de comando e não no modo de inserção ? Acho que tenho que pressionar Escdemais. Parece que existe a possibilidade de especificar isso no zsh, mas não encontrei uma maneira de fazer isso no bash / readline.

Galisperis
fonte

Respostas:

2

Eu não acho que é possível usar a biblioteca GNU Readline padrão .

No entanto, você pode usar o xdotool para um simples hack para obter o mesmo efeito. Anexar um comando ao seu .bashrcque simule um Escapepressionamento de tecla garantiria que seu termo fosse aberto no modo de comando:

xdotool key Escape

Você pode usar um pequeno atraso, com a --delaychave, para impedir que ela ative sua solicitação ...

Observe que é provável que isso introduza mais frustração do que o esperado: os terminais são projetados para aceitar entradas; quebrar isso (embora apenas um pouco) pode não ser uma boa idéia ...

jasonwryan
fonte
1

Retiro, isso não funciona com o movimento do cursor. Funciona, mas com o comportamento engraçado, se você os remover:PS1="$PS1 ^[


Mude seu PS1prompt:

PS1="test $ \[^[[s^[^[[u\]"

Onde ^[é uma fuga literal ( Ctrl+ V Esc).

O escape por si só no meio muda para o modo de comando, o ^[[se ^[[uescapa armazena e restaura a posição do cursor; sem isso, descobri que havia algum comportamento engraçado.

Kevin
fonte
1

A resposta é não . O arquivo de origem do bash relevante ébashline.c

Alexander
fonte
-1

experimentar set +o vi

set -o vi entrará novamente no modo de edição.

http://tldp.org/LDP/abs/html/options.html

Nikhil Mulley
fonte
Isso não funcionar: ele se transforma vi o modo off ...
jasonwryan
sim eu tentei. Certo. Eu posso pensar sobre isso - usando o vim, altere o cmap (referência: alternar modo de ajuda no vim) para a Escchave. Mapeamento equivalente padrão para EscéCtrl + ]
Nikhil Mulley
Também não funciona no meu ksh88.
R11 #