J'utilise vim dans quelques contextes différents; généralement, j'aime mettre ceci dans mon .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"
Cela fait en sorte que l'insertion et le mode normal utilisent des curseurs différents (le mode normal est un curseur de bloc et le mode d'insertion est une ligne verticale). Cela fonctionne pour moi dans mentinty avec cygwin, xterm et aussi rvxt très bien. Cependant, chaque fois que j'utilise l'écran GNU, mon curseur ne change plus. J'ai vu des références à ce problème pour tmux (par exemple ici: forme de curseur sous vim + tmux ), mais rien de ce que j'ai essayé pour Screen n'a fonctionné. Pour l'instant, je l'utilise dans mon .vimrc
:
"Underline currently edited line
if !has("gui_running")
:autocmd InsertEnter * set cul
:autocmd InsertLeave * set nocul
endif
Cela fait en sorte qu'en mode insertion, la ligne actuelle est soulignée (cela l' :has("gui_running")
empêche de prendre effet dans gvim). J'utilise également set laststatus=2
pour garder la barre d'état en bas, ce qui aide également. Je souhaite juste que cela fonctionne un peu plus comme gvim. Quelqu'un a-t-il trouvé une solution à cela?
Réponses:
Je pense que je l'ai compris, bien que je ne comprenne pas totalement le correctif. Cela semble fonctionner pour mintty, xterm et rxvt:
Cela s'appuie sur votre screenrc ayant quelque chose comme "term screen" ou "term screen-256color" afin que le fichier vimrc puisse identifier sur quel terminal vous êtes. Le seul terminal restant que j'utilise régulièrement lorsque cela ne fonctionne pas est PuTTY, mais je pense qu'il ne prend pas en charge les commandes de terminal pour changer la forme du curseur. Mintty a été bifurqué de PuTTY il y a quelque temps, et j'ai vu ici ( https://www.cygwin.com/ml/cygwin-announce/2009-07/msg00011.html ) que le support DECSCUSR a été ajouté à mintty après cette fourchette.
C'est assez bon pour moi - si je ssh'ing dans une machine où je veux vraiment mon curseur de bloc dans Vim, je suppose que je peux soit cygwin / ssh ou PuTTY / XMing / rxvt mon chemin à travers elle au lieu de PuTTY.
la source
echo &term
sortiesscreen
, j'ai donc changé l'expression rationnelle dans la ligne commençantif &term ...
parscreen.*
.