MacVim: reasigna combinaciones de teclas de comando como <df>

17

Puedo reasignar combinaciones no utilizadas como <d-1>(Cmd + 1) en MacVim, pero hay muchas combinaciones como <d-f>, <d-o>o <d-b>que ya están vinculadas a los elementos del menú de MacVim. Si trato de reasignar los que están dentro de mi .vimrc, nada cambia.

¿Hay alguna forma de reasignar esas combinaciones dentro de MacVim, o evitar que MacVim las asigne a elementos de menú para que se transmitan correctamente al núcleo de Vim?

Jo Liss
fuente

Respuestas:

21

Lo encontré: Command-T recomienda usar el siguiente fragmento:

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

Entonces, básicamente, desasigna el elemento de menú respectivo, y luego puede asignar el acceso directo que estaba tratando de asignar. (No estoy seguro de lo que está haciendo el comercial; funciona con y sin él).

¡Esto se debe poner en ~ / .gvimrc, no ~ / .vimrc! (Aparentemente, ~ / .vimrc se lee demasiado pronto, por lo que las asignaciones (des) se bloquearán si las coloca allí).

Jo Liss
fuente
3
Intenté esto en la versión actual de MacVim (7.3) y no funcionó. Terminé yendo a $ VIMRUNTIME / menu.vim, buscando <D-y poniendo un && 0al final de la declaración if circundante. Luego copié el contenido en mi .gvimrc y lo reemplacé <D-[^>]*>por <nop>.
dash-tom-bang
1
@ dash-torn-bang Hm, mi código anterior parece seguir funcionando bien con 7.3 instantánea 62 en Lion. No tuve que editar el menu.vim de MacVim. No estoy seguro de por qué funciona para mí, pero no para ti ...
Jo Liss
1
Pude hacerlo funcionar sin ampersand:macmenu File.Print key=<nop>
romaninsh
¡Gracias! Trabajó para mi. Aunque con una ligera modificación:macmenu File.Close key=<nop>
Halil Özgür