¿Qué estoy haciendo que hace que zsh cambie silenciosamente al modo vi?

0

Soy un desarrollador de software y, como tal, con frecuencia uso Terminal.app. Lo he estado usando por años. En algún momento de la última semana o dos, comencé a encontrar este problema con cierta frecuencia; Nunca lo he visto antes.

Uso zsh como mi shell por defecto. Estaré escribiendo un comando complejo. Presioné el botón de retorno, el comando se ejecuta y veo que no era exactamente lo que quería. Presiono la flecha hacia arriba, luego la flecha hacia la izquierda a la parte que quiero cambiar, y uso eliminar / retroceder para borrar la parte que quiero cambiar, pero no sucede nada. Tampoco puedo escribir ningún carácter.

Hoy, descubrí que cuando esto sucede, zsh ha cambiado al modo vi. Puedo presionar i para cambiar al modo de inserción, x para eliminar un carácter, etc. Además, puedo restaurar algo parecido a la normalidad escribiendo set -o emacs . Antes de este descubrimiento, acababa de abandonar la ventana de Terminal en cuestión y empezar de nuevo. ¡Frustrante!

No estoy seguro de lo que podría estar haciendo para poner a zsh en modo vi. Definitivamente no estoy escribiendo set -o vi ! Tiene que ser un error o una combinación de teclas de acceso rápido muy simple que podría estar golpeando por accidente.

Esto solo parece suceder con el zsh local en mi Mac. Si estoy ingresando a una máquina Linux remota, usando bash o zsh en la máquina remota (he cambiado mi shell por defecto en algunos de nuestros servidores, pero no en todos), no parece suceder.

Además, he descubierto que cuando abro una nueva ventana de Terminal, no parece estar en modo emacs vi o . Se comporta de una manera vaga emacs-y, pero control + A no salta al principio de la línea, y el pequeño puñado de otras pulsaciones específicas de emacs I Estoy familiarizado con también no funciona. Si ejecuto set -o emacs , entonces esas cosas comienzan a funcionar.

Si ejecuto set -o | egrep "on$" (que enumera las opciones zsh actualmente habilitadas) en un terminal nuevo, ni emacs ni vi aparecen en los resultados.

Revisé mi historial de actualización / instalación en la App Store, y creo que esto podría haber comenzado cuando instalé Xcode. (La mayoría de las veces desarrollo Java, y no lo tenía instalado previamente, aunque sí tenía instaladas las herramientas de desarrollador). No parece que se correlacione con la instalación de ninguna actualización de software a nivel de sistema.

Hice algo de googlear y no encontré evidencia de que alguien más haya encontrado este problema.

Si importa, estoy usando:

  • finales de 2013 27 "iMac.
  • 32 GB, SSD de 1TB, 3.5-3.9GHz i7.
  • MacOS High Sierra 10.13.4
  • zsh 5.3 (x86_64-apple-darwin17.0)
  • Xcode 9.3.1 (instalado, pero no estoy usando cuando sucedió nada de esto)

Entonces, mis preguntas:

  1. ¿Alguien sabe lo que podría estar haciendo para provocar el cambio silencioso al modo vi?
  2. ¿hay alguna configuración que pueda cambiar para que esto deje de suceder?
  3. ¿hay algún registro u otra salida de diagnóstico que pueda habilitar para que sea más obvio cuando esto sucede?
  4. ¿Qué es este modo de entrada que no es emacs ni vi que estoy viendo en un nuevo proceso de ventana de Terminal / zsh llamado?
pregunta JakeRobb 29.05.2018 - 22:25

1 respuesta

1

Suspiro. Explorando mi propia situación aún más, creo que estaba golpeando escape . Creo que zsh estuvo en modo vi todo el tiempo, pero más específicamente, ¡estaba en el modo de inserción de vi! Si voy a un nuevo editor y presiono escape , me encuentro en el modo de comando de vi.

Si ese es el caso, aún me interesa saber por qué set -o | egrep "on$" no indica que estemos en modo vi.

EDITAR: doble suspiro. Originalmente escribí mi pregunta con todas las referencias a bash, habiendo olvidado por completo que hace años cambié mi shell por defecto a zsh, que es mayoritariamente lo mismo. Volví y edité la pregunta para ser más clara, y luego busqué en Google de nuevo, reemplazando a bash con zsh. Rápidamente encontré esto: enlace

He aquí, mi .profile tiene EDITOR=vi , que puse allí hace unas dos semanas. Quité esa línea, y presionando escape ya no me pone en el modo de comando vi.

Mejor aún, seguí las instrucciones dadas en esa respuesta y pude restaurar la configuración de mi EDITOR sin tener que juntar zsh. ¡Hurra! :)

    
respondido por el JakeRobb 29.05.2018 - 22:32

Lea otras preguntas en las etiquetas