Como posso obter um cursor de bloco no Vim no terminal Cygwin?


46

Estou acostumado a ter um cursor de bloco no modo normal no Vim. Isso faz sentido com o paradigma Vim; quando você pressiona x, fica claro qual caractere será excluído.

Instalei o Cygwin em um computador com Windows, mas quando uso o Vim em seu terminal, recebo o Icursor, mesmo no modo normal. Como posso fazer com que o cursor seja um bloco?

Respostas:


73

Esta pergunta na lista de discussão do Cygwin responde à pergunta, configurando algumas variáveis ​​misteriosas nas seqüências de escape apropriadas. Adicione isso ao seu .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
Isso funcionou para mim quando usando mintty para ssh para um servidor linux
ZZAPPER

2
Muito obrigado. Preciso amar uma solução limpa que funcione nos 2 casos mais irritantes :)
rld.

3
Agradável. Infelizmente, no ConEmu, isso afeta o cursor de toda a sessão. Dito isto, funciona como esperado no vim. Também funciona bem no emulador de terminal do cygwin. Mas quem usa isso? ,)
George Marian

Quase perfeito ... mas ao sair do modo de inserção, ele retorna para um cursor de linha até você mover o cursor em alguma direção.
Joe Coder

1
Trabalhou para mim na versão do Vim instalada automaticamente com o Cmder. Obrigado!
Bangash

33

Há uma configuração para isso, no emulador de terminal cygwin:

Clique com o botão direito do mouse na barra de título da janela> Opções> Aparências> Cursor> botão de opção Cursor


Para concluir, esse tipo de opção é igual a qualquer outra janela de terminal do Windows, qual é o cygwin.
mveroone

6
Pro: o meu .vimrcpode ser mais compatível com o meu Linux ou Windows .vimrc. Con: agora eu tenho o cursor do bloco no modo de inserção, quando eu queria o Icursor nesse modo. +1
Kazark 22/08

5
a questão foi perguntando sobre como controlar o cursor na VIM mas esta resposta afeta o cursor durante toda a sessão shell, tanto na linha de comandos e, em VIM
David Alpert

1
@ EdRandall, esta é uma pergunta sobre o terminal Cygwin AND vim. Essa resposta pertence ao lado da pergunta Cygwin.
jared

1
Isso não responde à pergunta completamente. O Vim usa 2 tipos de cursores. No modo normal, visual ou de comando, é um bloco. No modo de inserção, é uma barra vertical. Essas instruções são para uma mudança geral em um emulador de terminal específico (cygwin), embora a maioria deva ter algo semelhante. Portanto, afeta o cursor em qualquer lugar do terminal e, mais importante, não imita a funcionalidade do cursor do vim.
George Marian

3

Crie um arquivo ~/.minttyrc, adicione abaixo a linha

CursorType=block

Em seguida, reinicie mintty, que é o terminal padrão do Cygwin.


0

Ou, você pode criar um arquivo em lotes:

 %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

E corra.

Se você não gosta do cursor piscando nas janelas de comando do DOS também usar %COMSPEC%em vez de /bin/env/...e ser surpreendido.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.