Eliminar clave no funciona en vim en iTerm2

16

En primer lugar, escribí algo en el modo de inserción, como

Hello

En esta etapa, si no salí del modo de inserción, deletefunciona y puedo eliminar la palabra completa si lo deseo.

Si salgo del modo de inserción y vuelvo a abrir el modo de inserción, esto Hellono se puede eliminar delete. Pero el contenido recién ingresado se puede eliminar.

Cambié el nombre de mi .vimrc, el problema aún existe.

E hice algunas pruebas en el servidor remoto a través de iterm, no encontré el mismo problema.

¿Cúal podría ser la causa de este problema? ¿Como arreglarlo?

zen
fuente
Con 'eliminar' te refieres a retroceso? Puede eliminar palabras enteras en modo de inserción Ctrl-W, intente eso. Si eso no hace nada, hay algo mal con tu vim. Yo uso iTerm 2 y nunca he tenido tales problemas.
pez remo
Sí, puedo usar dwo dw+ shiften modo normal para eliminar palabras. Pero backspacey ctrl+ wambos no funcionan en la segunda situación que mencioné anteriormente.
Zen
¿Pero puede usar la tecla de retroceso en la línea de comando normal fuera de vim? Muy raro.
pez remo
@oarfish, sí, puedo, y en el servidor remoto vim no tengo ese problema, todo sucede de repente. No puedo obtener la pista por ahora.
Zen
¿Qué versión vim tienes? Tengo vim 7.4.481 y no puedo reproducir el problema.
enero.h

Respuestas:

16

Esta es una característica de vim, aunque IIRC no estaría habilitada por defecto.

backspacees un entorno en vim, y se puede establecer tres parámetros diferentes: indent, eolystart

Si corres :help backspace, te dirá:

Influences the working of `<BS>`, `<Del>`, `CTRL-W` and `CTRL-U` in Insert
mode.  This is a list of items, separated by commas.  Each item allows
a way to backspace over something:

value     effect
indent    allow backspacing over autoindent
eol       allow backspacing over line breaks (join lines)
start     allow backspacing over the start of insert; CTRL-W and CTRL-U
          stop once at the start of insert.

El que no está configurado para ti es start.

Si agrega set backspace=indent,eol,starta su .vimrc, podrá retroceder sobre cualquier cosa en modo de inserción.

Jay Thompson
fuente
"característica" ... Por alguna razón, lo veo habilitado por defecto en un nuevo macOS 10.13 con una instalación de vim más reciente. Esta solución aún resuelve el problema.
Taylor Edmiston
9

También tuve esto, los valores predeterminados del procesamiento de texto natural eran incorrectos para mí.

  • MacBook Pro (15 pulgadas, 2018)
  • 10.14.3 (Mojave)
  • Iterm2 3.2.7

Ir a Preferences > Profiles > Keysy cargar el preset por defecto Natural Text Editingy borrar todas las entradas que están a punto deletey de deletecomportamiento. Después de eso funciona como se esperaba.

Salyangoz
fuente
1
Lo mismo, excepto que acabo de eliminar las entradas sobre "Del->", pero no agregué un enlace "Envía ^ H". Luego funcionó como se esperaba.
DagW
@DagW confirmó, el enlace ^ H es innecesario.
Salyangoz
2
Tuve que profundizar demasiado en las publicaciones incorrectas solo para encontrar esta respuesta correcta, ¡muchas gracias!
RecuencoJones
1
Tuve el problema en mi Tmux e Iterm2 durante mucho tiempo, nunca encuentro una solución hasta que encontré tu publicación aquí.
1234
1
¡Si! se trata de la configuración de iterm, no de vim en sí.
Rodrirokr el