MacVim: Mapeie novamente as combinações de teclas de comando como <df>

17

Eu posso remapear combinações não utilizados como <d-1>(Cmd + 1) em MacVim, mas há muitas combinações como <d-f>, <d-o>ou <d-b>que já estão vinculados a itens de menu MacVim. Se eu tentar remapear aqueles dentro do meu .vimrc, nada muda.

Existe alguma maneira de remapear essas combinações no MacVim ou impedir que o MacVim as atribua a itens de menu para que sejam repassadas corretamente ao núcleo do Vim?

Jo Liss
fonte

Respostas:

21

Encontrou: Command-T recomenda usar o seguinte trecho:

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

Então, basicamente, você mapeia o respectivo item de menu e fica livre para mapear o atalho que estava tentando mapear. (Não tenho certeza do que o e comercial está fazendo; ele funciona com e sem ele.)

Isso deve ser colocado em ~ / .gvimrc, não em ~ / .vimrc! (Aparentemente, ~ / .vimrc é lido muito cedo, portanto os mapeamentos (des) serão derrotados se você os colocar lá.)

Jo Liss
fonte
3
Eu tentei isso na versão atual do MacVim (7.3) e não funcionou. Acabei indo para $ VIMRUNTIME / menu.vim, procurando <D-e colocando um && 0no final da instrução if circundante. Depois copiei o conteúdo para o meu .gvimrc e o substituí <D-[^>]*>por <nop>.
dash-tom-bang
11
@ dash-rasgou-estrondo Hm, meu código acima parece ainda estar funcionando bem com 7.3 instantâneo 62 em Lion. Não precisei editar o menu.vim do MacVim. Eu não sei por que ele está trabalhando para mim, mas não para você ...
Jo Liss
11
Eu era capaz de fazê-lo funcionar sem e comercial:macmenu File.Print key=<nop>
romaninsh 12/12
Obrigado! Trabalhou para mim. Embora com uma ligeira modificação:macmenu File.Close key=<nop>
Halil Özgür