MacVim: remapper les combinaisons de touches de commande comme <df>

17

Je peux remapper des combinaisons inutilisées comme <d-1>(Cmd + 1) dans MacVim, mais il existe de nombreuses combinaisons comme <d-f>, <d-o>ou <d-b>qui sont déjà liées aux éléments du menu MacVim. Si j'essaye de remapper ceux à l'intérieur de mon .vimrc, rien ne change.

Existe-t-il un moyen de remapper ces combinaisons dans MacVim ou d'empêcher MacVim de les affecter aux éléments de menu afin qu'elles soient correctement transmises au noyau Vim?

Jo Liss
la source

Réponses:

21

Trouvé: Command-T recommande d'utiliser l'extrait de code suivant:

if has("gui_macvim")
  macmenu &File.New\ Tab key=<nop>
  map <D-t> :CommandT<CR>
endif

Donc, fondamentalement, vous démappez l'élément de menu respectif, puis vous êtes libre de mapper le raccourci que vous essayez de mapper. (Je ne sais pas exactement ce que fait l'esperluette; cela fonctionne avec et sans elle.)

Cela doit être mis dans ~ / .gvimrc, pas ~ / .vimrc! (Apparemment, ~ / .vimrc est lu trop tôt, donc les (dé) mappages seront encombrés si vous les y mettez.)

Jo Liss
la source
3
J'ai essayé cela sur la version actuelle de MacVim (7.3) et cela n'a pas fonctionné. J'ai fini par aller dans $ VIMRUNTIME / menu.vim, recherchant <D-et mettant un && 0à la fin de l'instruction if environnante. Ensuite, j'ai copié le contenu sur mon .gvimrc et remplacé <D-[^>]*>par <nop>.
dash-tom-bang
1
@ dash-torn-bang Hm, mon code ci-dessus semble toujours fonctionner correctement avec 7.3 snapshot 62 sur Lion. Je n'ai pas eu à modifier le menu.vim de MacVim. Je ne sais pas pourquoi ça marche pour moi mais pas pour vous ...
Jo Liss
1
J'ai pu le faire fonctionner sans esperluette:macmenu File.Print key=<nop>
romaninsh
Merci! A travaillé pour moi. Mais avec une légère modification:macmenu File.Close key=<nop>
Halil Özgür