Jak mogę uzyskać kursor blokowy w Vimie w terminalu Cygwin?


46

Jestem przyzwyczajony do posiadania kursora blokowego w trybie normalnym w Vimie. Ma to sens w przypadku paradygmatu Vima; po naciśnięciu xwiadomo, który znak zostanie usunięty.

Zainstalowałem Cygwin na komputerze z systemem Windows, ale kiedy używam Vima w jego terminalu, dostaję Ikursor, nawet w trybie normalnym. Jak zamiast tego mogę ustawić kursor w blok?

Odpowiedzi:


73

To pytanie z listy mailingowej Cygwin odpowiada na to pytanie, ustawiając niektóre tajemne zmienne w odpowiednich sekwencjach ucieczki. Dodaj to do .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
działało to dla mnie przy użyciu mintty do ssh do serwera Linux
zzapper

2
Dziękuję bardzo. Uwielbiam czyste rozwiązanie, które działa w 2 najbardziej irytujących przypadkach :)
rld.

2
Miły. Niestety w ConEmu wpływa to na kursor dla całej sesji. To powiedziawszy, działa zgodnie z oczekiwaniami w vim. Działa również dobrze w emulatorze terminalowym cygwina. Ale kto tego używa? ;)
George Marian

Prawie idealnie ... ale po wyjściu z trybu wstawiania powraca do kursora liniowego, dopóki nie przesuniesz kursora w określonym kierunku.
Joe Coder

1
Pracował dla mnie w wersji Vima instalowanej automatycznie z Cmder. Dziękuję Ci!
Bangash

33

Jest to ustawienie w emulatorze terminalowym cygwin:

Kliknij prawym przyciskiem myszy pasek tytułu okna> Opcje> Wygląd> Kursor> Przycisk opcji Kursor


Aby zakończyć, tego rodzaju opcje są takie same jak w każdym innym oknie terminala Windows, którym jest cygwin.
mveroone

6
Pro: mój .vimrcmoże być bardziej kompatybilny z moim systemem Linux lub Windows .vimrc. Przeciw: teraz mam kursor blokowy w trybie wstawiania, kiedy chciałem Ikursor w tym trybie. +1
Kazark

5
pytanie dotyczyło sterowania kursorem w VIM, ale ta odpowiedź wpływa na kursor dla całej sesji powłoki, zarówno w wierszu polecenia, jak iw VIM
David Alpert

1
@EdRandall to pytanie o terminal Cygwin AND vim. Ta odpowiedź dotyczy strony pytania Cygwin.
jared

1
To nie odpowiada całkowicie na pytanie. Vim używa 2 rodzajów kursorów. W trybie normalnym, wizualnym lub komendowym jest to blok. W trybie wstawiania jest to pionowy pasek. Instrukcje te dotyczą hurtowej zmiany określonego emulatora terminala (cygwin), chociaż większość powinna mieć coś podobnego. Tak więc wpływa na kursor wszędzie w terminalu, a co ważniejsze, nie naśladuje funkcji kursora vima.
George Marian,

3

Utwórz plik ~/.minttyrc, dodaj do niego poniższy wiersz

CursorType=block

Następnie uruchom ponownie mintty, który jest domyślnym terminalem Cygwin.


0

Lub możesz utworzyć plik wsadowy:

 %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

I uruchom to.

Jeśli nie podoba ci się migający kursor w oknach poleceń DOS, również użyj %COMSPEC%zamiast niego /bin/env/...i bądź zaskoczony.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.