Eu uso o vim em alguns contextos diferentes; Normalmente, eu gosto de colocar isso no meu .vimrc
:
let &t_ti.="\<Esc>[1 q"
let &t_SI.="\<Esc>[5 q"
let &t_EI.="\<Esc>[1 q"
let &t_te.="\<Esc>[0 q"
Isso faz com que o modo de inserção e o modo normal usem cursores diferentes (o modo normal é um cursor de bloco e o modo de inserção é uma linha vertical). Isso funciona para mim no mintty com cygwin, xterm e também rvxt muito bem. No entanto, sempre que uso a tela GNU, meu cursor não muda mais. Eu vi referências para corrigir isso no tmux (por exemplo, aqui: Forma do cursor no vim + tmux ), mas nada que eu tentei no Screen funcionou. Por enquanto, estou usando isso no meu .vimrc
:
"Underline currently edited line
if !has("gui_running")
:autocmd InsertEnter * set cul
:autocmd InsertLeave * set nocul
endif
Isso faz com que, no modo de inserção, a linha atual seja sublinhada (o :has("gui_running")
impede de entrar em vigor no gvim). Também uso set laststatus=2
para manter a barra de status na parte inferior, o que também ajuda. Eu só queria que funcionasse um pouco mais como o gvim. Alguém encontrou uma solução para isso?
fonte
Respostas:
Acho que descobri, embora não compreenda totalmente a correção. Parece funcionar para mintty, xterm e rxvt:
Isso depende do seu screenrc ter algo como "term screen" ou "term screen-256color" para que o arquivo vimrc possa identificar em qual terminal você está. O único terminal restante que uso regularmente onde isso não funciona é o PuTTY, mas acho que literalmente não suporta comandos do terminal para alterar a forma do cursor. Mintty foi bifurcado do PuTTY há algum tempo e vi aqui ( https://www.cygwin.com/ml/cygwin-announce/2009-07/msg00011.html ) que o suporte ao DECSCUSR foi adicionado ao mintty após esse garfo.
Isso é bom o suficiente para mim - se eu estiver inserindo uma máquina em que realmente quero meu cursor de bloco no Vim, acho que posso cygwin / ssh ou PuTTY / XMing / rxvt passar por ela em vez de PuTTY.
fonte
echo &term
saídasscreen
Então eu mudei a expressão regular na linha de partidaif &term ...
parascreen.*
.