Bagaimana saya bisa mendapatkan kursor blok di Vim di terminal Cygwin?


46

Saya terbiasa memiliki kursor blok dalam mode normal di Vim. Ini masuk akal dengan paradigma Vim; saat Anda menekan x, jelas karakter mana yang akan dihapus.

Saya telah menginstal Cygwin pada komputer Windows, tetapi ketika saya menggunakan Vim di terminalnya, saya mendapatkan Ikursor, bahkan dalam mode normal. Bagaimana saya bisa menjadikan kursor sebagai blok?

Jawaban:


73

Pertanyaan ini di milis Cygwin menjawab pertanyaan dengan menetapkan beberapa variabel misterius ke urutan pelarian yang sesuai. Tambahkan ini ke Anda .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
ini bekerja untuk saya ketika menggunakan mintty untuk ssh ke server linux
zzapper

2
Terima kasih banyak. Harus menyukai solusi bersih yang berfungsi dalam 2 kasus paling menjengkelkan :)
rld.

3
Bagus. Sayangnya, di ConEmu ini mempengaruhi kursor untuk seluruh sesi. Yang mengatakan, itu berfungsi seperti yang diharapkan di vim. Ini juga berfungsi dengan baik di emulator terminal cygwin. Tapi, siapa yang menggunakannya? ;)
George Marian

Hampir sempurna ... tetapi ketika meninggalkan mode sisipkan, ia kembali ke kursor garis sampai Anda memindahkan kursor ke suatu arah.
Joe Coder

1
Bekerja untuk saya dalam versi Vim yang diinstal secara otomatis dengan Cmder. Terima kasih!
Bangash

33

Ada pengaturan untuk itu, di emulator terminal cygwin:

Klik kanan pada bilah judul jendela> Opsi> Tampak> Kursor> Tombol radio kursor


Untuk menyelesaikannya, opsi semacam ini sama dengan jendela terminal windows lainnya, yaitu cygwin.
mveroone

6
Pro: my .vimrcbisa lebih kompatibel dengan Linux atau Windows saya .vimrc. Con: sekarang saya memiliki kursor blok dalam mode insert, ketika saya ingin Ikursor dalam mode itu. +1
Kazark

5
pertanyaannya adalah tentang mengendalikan kursor di VIM tetapi jawaban ini mempengaruhi kursor untuk seluruh sesi shell, baik pada command prompt dan di VIM
David Alpert

1
@ Edalland ini pertanyaan tentang terminal Cygwin DAN vim. Jawaban ini berkaitan dengan sisi Cygwin dari pertanyaan itu.
jared

1
Ini tidak menjawab pertanyaan sepenuhnya. Vim menggunakan 2 jenis kursor. Dalam mode normal, visual, atau perintah itu adalah blok. Dalam mode penyisipan, ini adalah bilah vertikal. Instruksi-instruksi ini adalah untuk perubahan besar-besaran dalam emulator terminal spesifik (cygwin), meskipun kebanyakan harus memiliki sesuatu yang serupa. Jadi, ini mempengaruhi kursor di mana-mana di terminal, dan, yang lebih penting, itu tidak meniru fungsi kursor vim.
George Marian

3

Buat file ~/.minttyrc, tambahkan baris di bawahnya

CursorType=block

Kemudian luncurkan kembali mintty, yang merupakan terminal default Cygwin.


0

Atau, Anda dapat membuat 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

Dan jalankan.

Jika Anda tidak menyukai kursor yang berkedip di jendela perintah DOS, gunakan juga %COMSPEC%alih-alih /bin/env/...dan kaget.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.