Configuración del modo Bash vi al valor predeterminado para el modo comando

14

¿Es posible configurar el modo bash vi para que inicialmente esté en modo comando en lugar de en modo insertar ? Me parece que tengo que presionar Escdemasiado. Parece que existe la posibilidad de especificar esto en zsh, pero no he encontrado una manera de hacerlo en bash / readline.

Galisperis
fuente

Respuestas:

2

No creo que sea posible usar la biblioteca de línea de lectura GNU estándar .

Sin embargo, es posible que pueda usar xdotool para un simple truco para lograr el mismo efecto. Agregar un comando a su .bashrccomputadora que simule una Escapepulsación de tecla aseguraría que su término se abra en modo comando:

xdotool key Escape

Es posible que desee utilizar un ligero retraso, con el --delayinterruptor, para evitar que interrumpa su mensaje ...

Tenga en cuenta que es probable que esto genere más frustración de lo que espera: los terminales están diseñados para aceptar entradas; romper eso (aunque solo un poco) puede no ser una buena idea ...

jasonwryan
fuente
1

Lo retiro, esto no funciona con el movimiento del cursor. Funciona, pero con el comportamiento divertido, si los quitas:PS1="$PS1 ^[


Cambia tu PS1solicitud:

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

Donde ^[es un escape literal ( Ctrl+ V Esc).

El escape por sí solo en el medio cambia al modo de comando, el ^[[sy ^[[uescapa almacena y restaura la posición del cursor; sin eso, descubrí que había un comportamiento divertido.

Kevin
fuente
1

La respuesta es no . El archivo fuente bash relevante esbashline.c

Alejandro
fuente
-1

tratar set +o vi

set -o vi pasará al modo de edición nuevamente.

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

Nikhil Mulley
fuente
Eso no funciona: desactiva el modo vi ...
jasonwryan
Sí, lo intenté. Correcto. Puedo pensar en esto: usando vim, cambie el cmap (referencia: ayuda de cambio de modo en vim) para la Escclave. El mapeo equivalente predeterminado para EscesCtrl + ]
Nikhil Mulley, el
Tampoco funciona en mi ksh88.
rahmu