Come posso ottenere un cursore a blocchi in Vim nel terminale Cygwin?


46

Sono abituato ad avere un cursore a blocchi in modalità normale in Vim. Questo ha senso con il paradigma di Vim; quando si preme x, è chiaro quale carattere verrà eliminato.

Ho installato Cygwin su un computer Windows, ma quando uso Vim nel suo terminale, ottengo il Icursore, anche in modalità normale. Come posso invece rendere il cursore un blocco?

Risposte:


73

Questa domanda sulla mailing list di Cygwin risponde alla domanda impostando alcune variabili arcane sulle sequenze di escape appropriate. Aggiungi questo al tuo .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"

2
questo ha funzionato per me quando ho usato mintty a ssh su un server linux
zzapper il

2
Grazie mille. Devi amare una soluzione pulita che funziona nei 2 casi più fastidiosi :)
rld.

3
Bello. Sfortunatamente, in ConEmu questo influisce sul cursore per l'intera sessione. Detto questo, funziona come previsto in vim. Funziona bene anche nell'emulatore terminale di Cygwin. Ma chi lo usa? ;)
George Marian,

Quasi perfetto ... ma quando si esce dalla modalità di inserimento, ritorna a un cursore di linea fino a quando non si sposta il cursore in una direzione.
Joe Coder,

1
Ha funzionato per me nella versione di Vim installata automaticamente con Cmder. Grazie!
Bangash,

33

C'è un'impostazione per questo, nell'emulatore di terminale cygwin:

Fare clic con il tasto destro sulla barra del titolo della finestra> Opzioni> Aspetto> Cursore> Pulsante di opzione Cursore


Per completare, questo tipo di opzioni è uguale a qualsiasi altra finestra del terminale di Windows, che è Cygwin.
mveroone,

6
Pro: my .vimrcpuò essere più compatibile con il mio Linux o Windows .vimrc. Contro: ora ho il cursore a blocchi in modalità inserimento, quando volevo il Icursore in quella modalità. +1
Kazark,

5
la domanda era sul controllo del cursore in VIM, ma questa risposta influisce sul cursore per l'intera sessione della shell, sia al prompt dei comandi che in VIM
David Alpert,

1
@EdRandall questa è una domanda sul terminale Cygwin E vim. Questa risposta riguarda il lato Cygwin della domanda.
Jared

1
Questo non risponde completamente alla domanda. Vim utilizza 2 tipi di cursori. In modalità normale, visiva o di comando è un blocco. Nella modalità di inserimento, è una barra verticale. Queste istruzioni sono per una modifica all'ingrosso di un emulatore di terminale specifico (cygwin), sebbene la maggior parte dovrebbe avere qualcosa di simile. Quindi, influenza il cursore ovunque nel terminale e, cosa più importante, non imita la funzionalità del cursore di VIM.
George Marian,

3

Crea un file ~/.minttyrc, aggiungi sotto la riga

CursorType=block

Quindi riavviare mintty, che è il terminale predefinito di Cygwin.


0

In alternativa, è possibile creare un file batch:

 %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

Ed eseguilo.

Se non ti piace anche il cursore lampeggiante nelle finestre dei comandi DOS, usa %COMSPEC%invece di /bin/env/...e lasciati sorprendere.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.