¿Cómo puedo obtener un cursor de bloque en Vim en el terminal Cygwin?

46

Estoy acostumbrado a tener un cursor de bloque en modo normal en Vim. Esto tiene sentido con el paradigma de Vim; Cuando presiona x, queda claro qué carácter se eliminará.

He instalado Cygwin en una computadora con Windows, pero cuando uso Vim en su terminal, obtengo el Icursor, incluso en modo normal. ¿Cómo puedo hacer que el cursor sea un bloque en su lugar?

Kazark
fuente

Respuestas:

73

Esta pregunta en la lista de correo de Cygwin responde a la pregunta estableciendo algunas variables arcanas en las secuencias de escape apropiadas. Agregue esto a su .vimrc:

let &t_ti.="\e[1 q"
let &t_SI.="\e[5 q"
let &t_EI.="\e[1 q"
let &t_te.="\e[0 q"
Kazark
fuente
2
esto funcionó para mí cuando uso mintty para ssh en un servidor Linux
zzapper
2
Muchas gracias. Tengo que amar una solución limpia que funcione en los 2 casos más molestos :)
rld.
3
Agradable. Desafortunadamente, en ConEmu esto afecta el cursor para toda la sesión. Dicho esto, funciona como se esperaba en vim. También funciona bien en el emulador de terminal de cygwin. Pero, ¿quién usa eso? ;)
George Marian
Casi perfecto ... pero al salir del modo de inserción, vuelve a un cursor de línea hasta que mueva el cursor en alguna dirección.
Joe Coder
1
Me funcionó en la versión de Vim instalada automáticamente con Cmder. ¡Gracias!
Bangash
33

Hay una configuración para eso, en el emulador de terminal cygwin:

Haga clic con el botón derecho en la barra de título de la ventana> Opciones> Apariencia> Cursor> Botón de radio del cursor

Johnny Hoang
fuente
Para completar, este tipo de opciones son las mismas que cualquier otra ventana de terminal de Windows, que es cygwin.
mveroone
66
Pro: mi .vimrcpuede ser más compatible con mi Linux o Windows .vimrc. Con: ahora tengo el cursor de bloque en modo de inserción, cuando quería el Icursor en ese modo. +1
Kazark
55
la cuestión estaba preguntando acerca de cómo controlar el cursor en VIM, pero esta respuesta afecta el cursor para toda la sesión de terminal, tanto en el símbolo del sistema y en VIM
David Alpert
1
@EdRandall esta es una pregunta sobre el terminal Cygwin Y vim. Esta respuesta pertenece al lado de Cygwin de la pregunta.
Jared
1
Esto no responde la pregunta por completo. Vim usa 2 tipos de cursores. En modo normal, visual o de comando es un bloque. En modo de inserción, es una barra vertical. Estas instrucciones son para un cambio general en un emulador de terminal específico (cygwin), aunque la mayoría debería tener algo similar. Por lo tanto, afecta el cursor en todas partes del terminal y, lo que es más importante, no imita la funcionalidad del cursor de vim.
George Marian
3

Cree un archivo ~/.minttyrc, agréguelo debajo de la línea

CursorType=block

Luego, vuelva a iniciar mintty, que es el terminal predeterminado de Cygwin.

qeatzy
fuente
0

O bien, puede crear un archivo por lotes:

 %SYSTEMDRIVE%\cygwin\bin\mintty.exe ^
        -s 132,50 -o ScrollbackLines=10000 ^
        -o BackgroundColour=54,54,54 ^
        -o Transparency=High -o OpaqueWhenFocused=yes ^
        -o CursorColour=Green -o CursorType=block -o CursorBlinks=no ^
        -o Font=Consolas -o FontHeight=10 ^
        /bin/env CHERE_INVOKING=1 /bin/bash -l -i

Y ejecútalo.

Si no le gusta el cursor parpadeante en las ventanas de comandos de DOS, use también en %COMSPEC%lugar de /bin/env/...y sorpréndase.

Andreas Spindler
fuente