Как получить курсор курсора в Vim в терминале Cygwin?


46

Я привык иметь блок курсора в нормальном режиме в Vim. Это имеет смысл с парадигмой Vim; когда вы нажимаете x, становится ясно, какой символ будет удален.

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

Ответы:


73

Этот вопрос в списке рассылки Cygwin отвечает на этот вопрос, устанавливая некоторые тайные переменные в соответствующие escape-последовательности. Добавьте это к вашему .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
Огромное спасибо. Должен любить чистое решение, которое работает в 2 самых раздражающих случаях :)
RLD.

3
Ницца. К сожалению, в ConEmu это влияет на курсор на весь сеанс. Тем не менее, он работает, как и ожидалось в VIM. Он также отлично работает в эмуляторе терминала cygwin. Но кто это использует? ;)
Джордж Мариан

Почти идеально ... но при выходе из режима вставки он возвращается к строковому курсору, пока вы не переместите курсор в каком-либо направлении.
Джо Кодер

1
Работал у меня в версии Vim, установленной автоматически с Cmder. Спасибо!
Bangash

33

Для этого в эмуляторе терминала cygwin есть настройка:

Щелкните правой кнопкой мыши строку заголовка окна> Параметры> Внешний вид> Курсор> Переключатель курсора


В завершение, этот вид опций такой же, как и у любого другого окна терминала Windows, которым является Cygwin.
mveroone

6
Pro: my .vimrcможет быть более совместимым с моим Linux или Windows .vimrc. Con: теперь у меня есть курсор блока в режиме вставки, когда я хотел Iкурсор в этом режиме. +1
Казарк

5
вопрос касался управления курсором в VIM, но этот ответ влияет на курсор для всего сеанса оболочки, как в командной строке, так и в VIM
Дэвид Альперт

1
@EdRandall это вопрос о терминале Cygwin и vim. Этот ответ относится к Cygwin стороне вопроса.
Джаред

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.