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.