71 votos

Ligero retraso al cambiar modos de vim usando tmux o pantalla

Cambiar a modo de inserción en Vim ya no es instantáneo, ya que yo uso tmux. Después de presionar Esc en modo de inserción, toma una notable cantidad de tiempo para salir del modo de inserción. Después de pulsar Esc y cualquier otra tecla después de que el interruptor es inmediata, y el comando de la tecla presionada después de la Esc se ejecuta. Alguna idea de lo que podría causar esto?

El Vim de configuración no es el problema ya que el retraso no se producen al ejecutar Vim fuera de tmux, así que esto está probablemente relacionado con tmux de alguna manera. Yo uso gnome-terminal por cierto.

También vale la pena destacar, parece que no puedo definir atajos de teclado en tmux para la Esc, mi plan era obligar a Esc a:

bind Escape send-keys ^[

Por desgracia, parece que la unión de nada Esc para tmux no funciona. El mismo problema ocurre en pantalla.

131voto

Robert Zelník Puntos 306

Después de arar a través de las páginas resulta tmux tiene una opción para esto. Los siguientes en ~/.tmux.conf soluciona el problema de la demora:

 set -sg escape-time 0

1voto

Jan Hlavacek Puntos 920

Suena como que usted está utilizando una asignación que se inicia con la ESC. Cuando se presiona la tecla ESC, vim tiene que esperar a ver si la siguiente clave es el de la asignación. Si no es, no puede continuar.

El vim configuración puede ser terminal dependiente, por lo que el hecho de que no suceda fuera de tmux no significa mucho. Vim puede consultar el $TERM variable de entorno y elegir diferentes de configuración dependiendo de su valor.

Desde gnome-terminal de usos, AFAIK, xterm como el valor de la $TERM variable, y tmux utiliza screen, me gustaría ver a través de todas sus vim archivos de configuración para la configuración que se utiliza sólo es el $TERM variable es igual a screen. Mi conjetura es que algunos vim archivo de configuración en su sistema de conjuntos de asignaciones para el manejo de las teclas de flecha (los que empiezan con la ESC personaje) cuando el terminal está screen.

Puedes probar cambiando temporalmente la $TERM variable en tmux antes de comenzar el vim. Si su cáscara es bash, llame a vim como

TERM=xterm vim

en tmux y ver si el problema persiste. Debe utilizar como una solución, sin embargo, ya que puede haber diferencias entre el terminal capacidades de tmux y xterm, y usted puede encontrarse con algunos problemas.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: