¿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?

Patryk
fuente

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
Chris Down
fuente
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.

jlliagre
fuente
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