Question

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 comme

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 en serais reconnaissant aussi.

Par ailleurs, il serait agréable de pouvoir être en mesure de taper 20 ESPACE t et ont la transparence a diminué de 20; Cependant, lorsque je tente, je reçois un

E481: No range allowed.

Comment activer la spécification de gamme?

Merci beaucoup.

Était-ce utile?

La solution

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

:map <space>t :<C-U>exe "set transparency-=".v:count1<CR>
  • Avec <C-U> vous retirez la plage de ligne qui est ajoutée à votre commande ex lorsque vous tapez 20 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 de sa valeur par défaut 1.

Pour plus d'informations voir

:h v:count
:h v:count1

Mise à jour:

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

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

Voir :h :let-&.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top