Soy un desarrollador de software y, como tal, utilizo Terminal.app con frecuencia. Lo he estado utilizando durante años. En algún momento de la última semana o dos, comencé a encontrar este problema con cierta frecuencia; nunca lo había visto antes.
Uso zsh como mi shell predeterminado. Estaré escribiendo un comando complejo. Presiono 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 hasta la parte que quiero cambiar, y uso eliminar/borrar para limpiar 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 a modo de inserción, x para borrar un carácter, etc. Además, puedo restaurar algo parecido a la normalidad escribiendo set -o emacs
. Antes de este descubrimiento, simplemente abandonaba la ventana del Terminal en cuestión y empezaba de nuevo. ¡Frustrante!
No estoy seguro de qué podría estar haciendo para cambiar zsh al modo vi. ¡Definitivamente no estoy escribiendo set -o vi
! Tiene que ser o un error o una combinación de teclas muy simple que podría estar presionando accidentalmente.
Esto parece suceder solo en el zsh local de mi Mac. Si estoy conectado a una máquina Linux remota a través de ssh, usando bash o zsh en la máquina remota (he cambiado mi shell predeterminado en algunos pero no todos nuestros servidores), no parece suceder.
Además, descubrí que cuando abro una nueva ventana del Terminal, no parece estar en modo vi ni en modo emacs. Se comporta de una manera vagamente parecida a emacs, pero control+A no salta al principio de la línea, y el pequeño grupo de otros atajos específicos de emacs con los que estoy familiarizado tampoco funcionan. Si ejecuto set -o emacs
, entonces esas cosas comienzan a funcionar.
Si ejecuto set -o | egrep "on$"
(que lista las opciones de zsh actualmente habilitadas) en un terminal nuevo, ni emacs ni vi aparecen en los resultados.
Revisé mi historial de actualizaciones/instalaciones en la App Store, y creo que esto pudo haber comenzado cuando instalé Xcode. (Principalmente desarrollo cosas en Java, y no lo tenía instalado previamente, aunque tenía las herramientas de desarrollo instaladas). No parece coincidir con la instalación de ninguna actualización de software a nivel de sistema.
Hice algunas búsquedas y no encontré evidencia de que alguien más haya tenido este problema.
Si importa, estoy usando:
- iMac 27" finales de 2013.
- 32 GB, 1 TB SSD, 3.5 a 3.9 GHz i7.
- macOS High Sierra 10.13.4.
- zsh 5.3 (x86_64-apple-darwin17.0).
- Xcode 9.3.1 (instalado, pero no lo estoy usando cuando ocurre esto).
Entonces, mis preguntas:
- ¿Alguien sabe qué podría estar haciendo para provocar el cambio silencioso al modo vi?
- ¿Hay alguna configuración que pueda cambiar para evitar que esto siga ocurriendo?
- ¿Hay algún registro u otra salida de diagnóstico que pueda habilitar para que sea más obvio cuando esto suceda?
- ¿Cómo se llama este modo de entrada no-emacs, no-vi que veo en una ventana del Terminal/zsh fresca?
0 votos
Mirando hacia atrás en esto después de> 2 años, no tengo idea de por qué no lo publiqué en unix.stackexchange ... : facepalm: