macos osx-snow-leopard vim backspace

macos - ¿Cómo puedo reparar mi clave de eliminación en VIM sobre ssh?(Mac OS X)



osx-snow-leopard backspace (4)

Esto funcionó para mí:

:set backspace=indent,eol,start

No estoy seguro de lo que hace exactamente, pero está listado como una posible solución here y here . Encontré esta línea en un archivo vimrc distribuido con Ubuntu donde el comportamiento de la tecla mac "eliminar" (también conocida como la tecla "retroceso") funciona como se espera sin ninguna otra configuración.

El comportamiento que estaba experimentando era un sonido de campana (sin caracteres eliminados) al presionar la tecla mac "eliminar" (también conocida como la tecla "retroceso") en el modo de inserción. Estoy usando una versión compilada de vim 7.3 en "amazon linux" sobre ssh desde un mac. Al presionar <ctrl-v><delete> cuando en el modo de inserción se produjo ^?

Cuando uso VIM en el terminal en mi máquina local (Mac OS X Snow Leopard), la clave de eliminación es realmente un retroceso (es decir, un retroceso destructivo).

Cuando SSH en un servidor en particular, por alguna razón, es eliminar regularmente (es decir, eliminar el carácter debajo del cursor).

¿Cómo puedo cambiarlo para que sea consistente? He intentado una docena de soluciones, pero nada parece funcionar.

Marcar la casilla "Eliminar envía Ctrl-H" en Preferencias de Terminal-> Avanzadas no funciona, esto es un retroceso no destructivo.

He intentado alrededor de un centenar de asignaciones de teclas diferentes en VIM, en vano.

Curiosamente, la tecla funciona como se esperaba cuando escribo comandos en VIM (por ejemplo, : <something> ): solo se arruina cuando edito el texto real. ¿Algunas ideas?


Intenta agregar

set <Del>=<C-v><Del>

a la vimrc en la máquina de destino. Aquí debe escribir <Cv> <Del> mientras se registra en la máquina de destino. Si esto no funciona, marque el verbose imap <Del> : esto le indicará si algún complemento ha reasignado <Del> en el modo de inserción.


Pruebe esto: http://www.alecjacobson.com/weblog/?p=295

Solucioné el problema cambiando mi configuración de Terminal.app. En Terminal> Preferencias, seleccione Avanzado. Marque "Eliminar envía Ctrl-H". Ahora, vi y vim deberían entender la tecla de borrar de manera más intuitiva.

Nota: la asignación de la clave de "eliminar" en mi archivo vimrc parece probablemente la forma correcta de hacer esto, pero eso es un gran problema. ¿Hay alguna razón para no hacerlo de esta manera?


Un par de ideas para probar:

  • En su archivo .vimrc en el servidor remoto, agregue esta línea:

    set term=linux

  • En su archivo .bash_profile (o lo que corresponda a su shell de elección) en el servidor remoto:

    stty erase ^H

    Nota: para que esto funcione correctamente, debe escribir ctrl - v , luego ctrl - h para escribir el carácter ^H

    Además, asegúrese de que la opción "Eliminar envío Ctrl-H" esté marcada en sus preferencias de Terminal.