2017-10-02 2 views
2

Je suis en train de la carte * pour le redimensionnement des fenêtres comme celui-ci dans mon vimrc:
map * <C-W>-
Cela ne fonctionne pas en mode normal, mais fonctionne en utilisant le mode visuel.
(en appuyant sur < C-W > - manuellement, cela fonctionne en mode normal)
Y at-il une raison pour laquelle cela ne fonctionne pas avec ma cartographie? Comment puis-je utiliser l'astérisque en mode normal?ne peut pas mapper astérisque (*) clé VIM correctement

+0

Êtes-vous sûr que '*' est pas déjà mis en correspondance avec quelque chose en mode normal? –

+1

sacrément merci vous avez raison. Je l'ai vérifié par: carte détaillée et un plugin utilisé. –

Répondre

2

map * <C-W>- est une recursive mappage: si quelque chose dans ce mappage est déjà mappé à quelque chose d'autre au moment de l'utilisation, c'est quelque chose d'autre qui sera exécuté.

Il est généralement conseillé d'utiliser non récursives correspondances pour la plupart des applications sauf lorsque vous utilisez délibérément une autre application dans votre cartographie.

La variante non récurrente de votre cartographie serait:

noremap * <C-W>- 

Notez que :map couvre mode normal, le mode visuel, le mode de sélection, et le mode opérateur en instance qui peut avoir des conséquences imprévues. Vous devez toujours utiliser la commande plus spécifique disponible, dans ce cas:

nnoremap * <C-W>-