¿Cómo hacer que Vim Move Cursor sea un personaje para Toight en InsertLeave?

StackOverflow https://stackoverflow.com/questions/5841646

  •  27-10-2019
  •  | 
  •  

Pregunta

Desde Mac OS X's terminal.app no admite muchos de los aspectos visuales VIM, incluido el cambio de cursor de bloque a línea Al cambiar a modo de inserción, uso osascript para accopmlisch algo similar.

En mi .vimrc Archivo que he escrito:

autocmd InsertEnter * silent !osascript -e 'tell application "Terminal" to set current settings of first window to settings set 11`j
autocmd InsertLeave * silent !osascript -e 'tell application "Terminal" to set current settings of first window to settings set 12`j

dónde settings set 11 es un conjunto de configuración terminal que tiene un cursor de línea y settings set 12 es uno que tiene un cursor de bloque.

Esto en realidad funciona bastante bien, pero hay un pequeño problema. En InsertLeave, el cursor siempre se mueve un carácter a la izquierda, lo que no es tan importante, pero puede ser anoying.

Traté de compensar colocando autocmd InsertLeave h en mi .vimrc, pero fue en vano (me da un error).

¿Cómo debo decirle a Vim que?

  1. ¿No cambia a la izquierda?
  2. Si lo anterior no es posible, compensar cambiando hacia la derecha
¿Fue útil?

Solución

Antes de responder a la pregunta, le recomendaría que eche un vistazo en MacVim (si no lo ha hecho). Si desea (o necesita) seguir con el terminal, tal vez otro terminal como ITERM proporcionará más funcionalidad. De todos modos, el cambio de cursor entre BLOCK - BAR no está presente en ITERM (al menos creo que sí) y su forma de resolverlo fue fenomenal, ya está marcado aquí ahora. ¡Gracias!


Una manera fácil de resolverlo sería agregar otro autocommand, como usted dijo. Pero en el tuyo, faltan el patrón y el comando correcto para ejecutar.

los h no es un comando. Para ejecutar un modo normal secuencia, usa el :normal dominio. Esto puede funcionar correctamente:

au InsertLeave * normal! h
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top