¿Cómo desarmar set -o vi?


26

Quería probar el modo vi en bash pero ahora me gustaría volver a cambiarlo a la normalidad.

¿Cómo puedo desarmar -o vi?

Respuestas:


30

Las únicas dos interfaces de edición de línea disponibles actualmente bashson vimodo y emacsmodo, por lo que todo lo que necesita hacer es configurar el emacsmodo nuevamente.

set -o emacs

Cabe señalar que este era yo leyendo entre líneas en lugar de responder la pregunta directamente. emacses el modo de edición de línea predeterminado en bash. El emacsmodo de configuración deshabilita el vimodo como efecto secundario, pero como se menciona en jlliagre a continuación, en realidad puede deshabilitarlos a ambos.
Chris Down

25

Eso depende de lo que defina "normal". Si eso está desactivando la edición de línea, la forma documentada de desarmar -o vies establecer+o vi

$ set -o vi
$ set -o|egrep -w "(vi|emacs)"
emacs           off
vi              on
$ set +o vi
$ set -o|egrep -w "(vi|emacs)"
emacs           off
vi              off

Chris ya ha respondido si su modo normal es emacs.


desactivar los modos también elimina la función de historial de shell, ahora no puedo usar las teclas de flecha arriba / abajo para ver el historial de comandos :(
rsjethani

2
No quita la función de historial de shell. Aún puede ver su historial con el historycomando y ejecutar comandos anteriores al prefijar su número con el !carácter.
jlliagre

sí, los comandos 'history' n family todavía funcionan, pero las teclas de flecha arriba / abajo que uso con más frecuencia no funcionan. Tan pronto como active cualquiera de los modos en las teclas, comenzaré a funcionar ... ¿No lo entiendo?
rsjethani

3
Las flechas arriba / abajo solo son administradas por el shell si la edición de línea está habilitada (es decir, uno de los modos emacs o vi está configurado). De lo contrario, las teclas de flechas simplemente envían su secuencia de escape sin procesar.
jlliagre
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.