Як я можу отримати курсор блоку у Vim у терміналі Cygwin?


46

Я звик мати курсор блоку в звичайному режимі у Vim. Це має сенс у парадигмі Віма; при натисканні xбуде зрозуміло, який символ буде видалений.

Я встановив Cygwin на комп’ютер Windows, але коли я використовую Vim в його терміналі, я отримую Iкурсор навіть у звичайному режимі. Як я можу зробити курсор замість цього блоком?

Відповіді:


73

Це запитання у списку розсилки Cygwin відповідає на це питання, встановлюючи деякі приховані змінні у відповідних послідовностях виходу. Додайте це до свого .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
це працювало для мене під час використання mintty для ssh на сервері linux
zzapper

2
Дуже дякую. Треба любити чисте рішення, яке працює у двох найбільш дратівливих випадках :)
rld.

2
Приємно. На жаль, у ConEmu це впливає на курсор протягом усього сеансу. Однак, це працює так, як очікувалося в vim. Він також добре працює в емуляторі терміналу cygwin. Але хто це використовує? ;)
Джордж Маріан

Майже ідеально ... але, виходячи з режиму вставки, він повертається до курсору рядків, поки ви не перемістите курсор у деякий бік.
Джо Кодер

1
Для мене працював у версії Vim, встановленій автоматично з Cmder. Спасибі!
Бангаш

33

Для цього в емуляторі терміналу cygwin є налаштування для цього:

Клацніть правою кнопкою миші на заголовку вікна> Опції> Виглядає> Курсор> Перемикач курсору


Щоб завершити, такі параметри такі ж, як і будь-яке інше вікно терміналу Windows, яким є cygwin.
mveroone

6
Pro: моя .vimrcможе бути більш сумісною з моїм Linux або Windows .vimrc. Con: зараз у мене блок-курсор у режимі вставки, коли я хотів Iкурсор у тому режимі. +1
Казарк

5
запитання було про керування курсором у VIM, але ця відповідь впливає на курсор протягом усього сеансу оболонки, як у командному рядку, так і у VIM
Девід Альперт

1
@EdRandall це питання про термінал Cygwin AND vim. Ця відповідь стосується цигунської сторони питання.
jared

1
Це не відповідає на питання повністю. Vim використовує 2 типи курсорів. У звичайному, візуальному або командному режимі це блок. У режимі вставки це вертикальна смуга. Ці вказівки стосуються оптової зміни певного емулятора терміналу (cygwin), хоча більшість має мати щось подібне. Отже, він впливає на курсор скрізь у терміналі, і, що ще важливіше, він не імітує функціональність курсора vim.
Джордж Маріан

3

Створіть файл ~/.minttyrc, додайте до нього нижче рядок

CursorType=block

Потім перезапустіть mintty, що є терміналом Cygwin за замовчуванням.


0

Або ви можете створити пакетний файл:

 %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

І запустити його.

Якщо вам не подобається миготливий курсор у вікнах команди DOS, використовуйте %COMSPEC%замість цього /bin/env/...і дивуйтеся.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.