2010-01-14 4 views
1

Vim Je veux définir un mappage dans mon .gvimrc telle que si la dernière touche est maintenue, l'action déclenchée est répétée. Plus précisément, je veux faire quelque chose commerépétitions et gammes clés dans les correspondances

map <SPACE>t :set transparency-=1 
map <SPACE>T :set transparency+=1 

pour MacVim, mais je veux la transparence de continuer à être diminué/augmenté lorsque t/T ont lieu (ne veulent pas avoir à continuer à appuyer sur la barre d'espace).

Si vous avez une suggestion pour une plus belle façon de régler la transparence, je vous serais reconnaissant de cela aussi.

Par ailleurs, il serait agréable de pouvoir être en mesure de taper SPACEt et ont la transparence a diminué de 20; cependant, quand j'essaie, j'obtiens un

E481: No range allowed. 

Comment activer la spécification de plage?

Merci beaucoup.

+0

Pour le clipart clavier démarquage voir http://meta.stackexchange.com/questions/26207/how-to-format-as-keyboard-keys. –

+0

Parfait, merci! – daltonb

Répondre

6

Je ne suis pas sûr de la première partie de votre question, mais pour obtenir <Space>t pour pouvoir faire son travail:

:map <space>t :<C-U>exe "set transparency-=".v:count1<CR> 
  • Avec <C-U> vous retirez la plage de lignes ajoutée à votre commande ex lorsque vous tapez en mode normal.
  • Avec exe vous exécutez vimscript 'dynamique'.
  • v:count1 est le nombre donné pour la dernière commande du mode Normal (20 dans cet exemple). Et s'il n'y a pas donné le nombre par défaut il 1.

Pour plus d'informations voir

:h v:count 
:h v:count1 

Mise à jour:

Vous pouvez omettre exe en utilisant let forme au lieu de set un:

:map <space>t :<C-U>let &transparency-=v:count1<CR> 

Voir :h :let-&.

+0

hey merci .. c'était parfait. (bien presque, le "set transparent - =" ne devrait pas avoir d'espace après le - =) – daltonb

+0

2secondbanana: Fixe –

Questions connexes