Personnaliser le style du curseur vim sous un terminal Mac OS X

4

Je veux personnaliser le curseur vim pour qu'il soit un bloc rectangulaire clignotant. j'ai essayé ce et ce et de nombreux autres éléments similaires après quelques recherches, mais aucun ne fonctionne comme prévu.

Actuellement, mon curseur est un soulignement gris non clignotant (c'est-à-dire le soulignement situé sous le caractère "e" dans la dernière ligne ci-dessous), ce qui est assez difficile à reconnaître.

underline cursor

Lorsque le curseur se trouve sur une parenthèse, il devient un bloc. (En fait, j’estime qu’il s’agit d’un changement de couleur d’arrière-plan) Ce que je veux, c’est d’avoir ce bloc tout le temps et clignotant.

block cursor

Je n'ai rien lié au style de curseur dans mon fichier .vimrc. J'utilise Mac OS X 10.9, la version de terminal 2.4 (326) et oh-my-zsh. Dans les paramètres du terminal, j'utilise le thème Pro et le curseur est souligné. Je peux changer ceci pour bloquer ainsi le curseur dans vim change également, mais j'ai besoin du curseur souligné dans un Terminal normal.

terminal settings

Xiao Jia
la source

Réponses:

1

Vous voudrez peut-être ajouter ceci à votre vimrc:

if exists('$TMUX')
    let &t_SI = "\<Esc>Ptmux;\<Esc>\<Esc>]50;CursorShape=0\x7\<Esc>\\"
    let &t_EI = "\<Esc>Ptmux;\<Esc>\<Esc>]50;CursorShape=0\x7\<Esc>\\"
else
    let &t_SI = "\<Esc>]50;CursorShape=0\x7"
    let &t_EI = "\<Esc>]50;CursorShape=0\x7"
endif

Cela devrait fournir les séquences d'échappement correctes pour tmux ou iTerm.

J'ai aussi trouvé ce plugin qui change automatiquement le curseur en fonction du mode actuel.

Nate Mara
la source
2
Ça ne marche pas Je n'utilise ni tmux ni iTerm. J'utilise le terminal.app fourni par Mac OS X et zsh.
Xiao Jia
Trouvé ce message et utilise tmux - fonctionne très bien merci!
ostler.c
1

Vous pouvez essayer celui-ci dans votre .vimrc:

let &t_SI="\033[4 q" " start insert mode
let &t_EI="\033[1 q" " end insert mode

Cela définira sous ligne pour le mode incrusté et bloc pour normal. Plus de détails: http://vt100.net/docs/vt510-rm/DECSCUSR

Il est également possible de jouer avec cette commande dans le terminal, où est X peut être 0, 1, 2, 3 ou 4.

printf '\033[X q'
avdyushin
la source