2011-11-10 8 views
7

Recientemente he cambiado al uso de una Mac en el trabajo de utilizar Linux anteriormente. Descubrí MacVim (desde http://code.google.com/p/macvim/) y he intentado realizar un puerto sobre mis keymappings anteriores.Determinadas asignaciones de teclas que no funcionan en MacVim

Las asignaciones que solía tener son las siguientes:

  • Ctrl-T: Nueva pestaña
  • Ctrl-W: Cerrar la pestaña/ventana
  • Ctrl-1. .. Ctrl-0: Cambiar a la pestaña numerada
  • Alt-Up: Nueva pestaña (igual que Ctrl-T)
  • Alt-Izquierda/Alt-derecho: Cambiar a la pestaña anterior/siguiente
  • Ctrl-Alt-E: Abrir FuzzyFinder en el archivo modo
  • Ctrl-Alt-B: FuzzyFinder abierto en el modo de memoria intermedia
  • Ctrl-Alt-W: Clear espacios en blanco de la memoria intermedia

Ahora, para hacer estas asignaciones más 'Mac like', decidí cambiar las dos primeras para usar la opción (es decir. Apple logo), y todos los demás para utilizar la tecla de comando en lugar de Alt (es decir, Ctrl-Alt-E se convierte en Ctrl-Command-E). Leí en http://macvim.org/OSX/index.php que esta clave se puede mapear con D (es decir). Los nuevos contenidos de mi .vimrc es el siguiente:

nmap <D-t> :tabnew<cr> 
nmap <D-w> :close<cr> 
nmap <D-1> 1gt 
nmap <D-2> 2gt 
nmap <D-3> 3gt 
nmap <D-4> 4gt 
nmap <D-5> 5gt 
nmap <D-6> 6gt 
nmap <D-7> 7gt 
nmap <D-8> 8gt 
nmap <D-9> 9gt 
nmap <D-0> 10gt 

nmap <D-Up> :tabnew<CR> 
nmap <D-Right> :tabnext<CR> 
nmap <D-Left> :tabprevious<CR> 

"FuzzyFinder 
nmap <C-D-e> :FufFileWithFullCwd<CR> 
nmap <C-D-b> :FufBuffer<CR> 

"Whitespace remover 
nmap <C-D-w> :%s/\s\+$//<CR> 

Así, después de re-mapeo de las teclas, algunos ahora trabajan y otros no, sin una lógica clara de por qué.

Lo que funciona:

  • Cmd-T y Comando-W trabajar con éxito para las lengüetas de apertura y cierre.
  • Cmd-1 ... Comando-0 funciona con éxito para cambiar de pestaña.

lo que no funciona:

  • Cmd-Up para abrir una pestaña no funciona.
  • Cmd-Left y Cmd-Right para pestañas de conmutación no funciona.
  • Ctrl-Cmd-E y Ctrl-Cmd-B para abrir FuzzyFinder no funciona.
  • Ctrl-Comando-W para la limpieza de los espacios en blanco no funciona (pero tampoco cerrar la pestaña, como lo haría sin ctrl.
+0

puede aceptar su propia respuesta si usted mismo encuentra la solución. ;) – sjas

+0

Hay una [razón] (http://learnvimscriptthehardway.stevelosh.com/chapters/05.html) para usar siempre '* nore (map | abbrev)' (por ejemplo 'nnoremap') y nunca' nmap'. – ZyX

+0

Gracias ZyX por el consejo. ¡Creo que voy a leer todo el 'Aprende el guión de Vim de la manera difícil' cuando tenga la oportunidad! –

Respuesta

5

Así que resulta que hay un bu g en Macvim (http://code.google.com/p/macvim/issues/detail?id=317) lo que significa que no es posible asignar la tecla ctrl. En cambio, asigné la clave del líder (por ejemplo, la barra invertida), y parece que todo funciona ahora.

+0

Hola @Joel Cross ¿podrías decirme cómo resolviste ese problema más específicamente? Intento mapear una clave para ctrl + command + w. gracias – bean

+0

Hola Joel, ¿podrías decirme más detalles sobre cómo asignar ctrl + comando + w? – bean

+0

Perdón, me refiero a asignar una clave como F a ctrl + comando + w, no viceversa – bean

7

investigar la causa haciendo

:verbose map <D-Up> 

Además, intente selectivamente habilitar sus otros complementos para ver si las correlaciones se borran de alguna manera

+0

* Último conjunto de /Applications/MacPorts/MacVim.app/Contents/Resources/vim/gvimrc –

+0

Parece que un archivo global está anulando mi configuración. Sin embargo, estoy sorprendido, porque hubiera pensado que mi configuración de usuario tendría prioridad. –

+0

Agregué la línea "let macvim_skip_cmd_opt_movement = 1" a mi .vimrc y ahora las pestañas funcionan bien. Los últimos tres comandos (los que usan la combinación ctrl-cmd) aún no funcionan. –

Cuestiones relacionadas