En vim, ¿cómo asignar "comando a la derecha" y "comando a la izquierda" al comienzo de la línea y al final de la línea en mac?

10

Estoy tratando de que sea como la edición de texto predeterminada en Mac. Lo intenté map! <D-Left> 0 y map! <D-Right> $ en ~ / .vimrc, pero por supuesto no funcionó. ¿Cómo puedo hacer esto?

Marty
fuente

Respuestas:

9

Hasta donde sé, la sintaxis del modificador de la tecla Comando ( <D-...>) solo es efectiva en instancias de Vim en modo GUI en Mac OS X.

La instancia de Vim debe estar basada en la GUI porque la mayoría de los emuladores de terminal ( Terminal , iTerm , etc.) no generan secuencias de control para las combinaciones de teclas de Comando, por lo que una instancia de Vim solo tty no tiene forma de saber que alguna vez hubo una combinación de teclas de Comando presionado (el emulador de terminal nunca envía nada a través de la interfaz tty). De hecho, Terminal vincula ⌘ ← y ⌘ → (Comando-Izquierda y -Derecha) para recorrer sus ventanas abiertas, por lo que esas teclas ya están "tomadas" cuando escribe en el contexto de Terminal .

MacVim (cuando se ejecuta en modo GUI) viene con asignaciones funcionales para (entre otras pulsaciones de teclas estilo Mac)<D-Left>y<D-Right>(respectivamente, para<Home>(casi idéntico a0) e<End>(idéntico a$)). Una advertencia es que estas asignaciones predeterminadas están establecidas$VIM/gvimrc, por lo que solo se pueden anular correctamente desde su~/.gvimrc .

Creo que ha habido otras versiones de Vim basadas en GUI para Mac OS X, pero MacVim parece ser la única moderna.

A grandes rasgos, los archivos de inicio se procesan en este orden: $VIM/vimrc, ~/.vimrc, $VIM/gvimrc, ~/.gvimrc. Dado que los mapas de MacVim , debe colocar su mapeo (si realmente desea anularlo) en su para que tenga la "última palabra".$VIM/gvimrc<D-Left><D-Left>~/.gvimrc

Chris Johnsen
fuente
Gracias. probé iTerm 2, funcionó con eso, pero aún así ... qué dolor ... bienvenido de nuevo a mi vida, Xcode
Marty