2008-11-14 7 views
27

Estoy tratando de usar el < C-a> (CTRL + A) shorcut bajo vim para incrementar una variable debajo del cursor. Esto funciona bien bajo vim corriendo en Linux. Sin embargo, cuando intento hacer esto en gvim en Windows, "selecciona todo" (es decir, resalta o selecciona visualmente todo el texto en la ventana actual). ¿Cómo puedo cambiar este comportamiento o, alternativamente, cómo puedo recuperar la funcionalidad de la variable de incremento (por ejemplo, quizás con una asignación de teclas diferente)?¿Por qué < C-a> (CTRL + A) no funciona bajo gvim en windows?

+0

vea esto http://stackoverflow.com/questions/66919/how-to-increment-in-vim-under-windows-where-ctrl-a-does-not-work.Pienso que la respuesta de Paul estará bien –

Respuesta

27

Esto se debe a mswin.vim que es originado por el _vimrc predeterminado generado cuando instala vim. Simplemente anule su _vimrc con el .vimrc que está utilizando en * nix, o elimine mswin.vim.

+8

mswin.vim es considerado malvado. Ojalá Bram dejara de incluirlo. – Zathrus

+1

Esto se puede solucionar con mrswin.vim: http://www.vim.org/scripts/script.php?script_id=514 –

+3

@Zathrus - ¿Cómo pueden algunas líneas de texto ser "malvadas"? Explique. – Rook

4

Vim en Windows tiene asignaciones de teclas especializadas por defecto para hacer que los accesos directos sean más "windows-y". Estos se especifican en el archivo $ VIMRUNTIME \ mswin.vim, que se carga a través de vimrc a menos que lo haya deshabilitado. Puede editar el archivo mswin.vim (es posible que desee editar una copia, cambiando su vimrc para usar su copia editada).

No estoy completamente seguro de que es un Vim asignación predeterminada, ya que la única referencia que puedo encontrar en Ctrl + A en el archivo de ayuda es esto, lo que no parece hacer lo que usted se refiere a:

*c_CTRL-A* 
CTRL-A  All names that match the pattern in front of the cursor are 
       inserted. 

por lo que es posible que desee comprobar su cuadro de Linux para ver si algún complemento o algo cambia la asignación de teclas. (Por supuesto, puede ser que simplemente no pueda encontrar la parte adecuada de la ayuda de Vim.)

+0

': h CTRL-A' funciona bien -> http://vimdoc.sourceforge.net/htmldoc/change.html#CTRL-A –

+0

Ah, gracias. No pensé en esa opción. > _ < –

1

en la versión actual de mswin.vim provista con gvim, el archivo comprueba el valor de un elemento global denominado skip_loading_mswin ; Si se establece, el resto del archivo se omite; por lo que es suficiente para añadir

let skip_loading_mswin=1 

a $HOME/_vimrc y los enlaces de vim normal se restablecerá la próxima vez que inicie vim.

3

Si simplemente no les gusta CtrlUn comportamiento, pero está muy bien con otros comportamientos ventanas en VIM (como CtrlZ para deshacer), acaba de desactivar esa línea específica:

  1. Editar dicho archivo (c:\Program Files\Vim\vim73\mswin.vim para mí)
  2. Encontrar el párrafo que comienza con CTRL-A is Select all
  3. Anular todo (6) líneas de ese párrafo con corchetes de apertura (")
  4. Vuelva a abrir sus ventanas GVIM.

Puede todavía "seleccionar todo" escribiendo ggVG (cursor de posición en primera línea, seleccionar toda la línea, seleccionar hasta que la última línea del documento).

Happy incrementing!

5

Sé que voy tarde a la fiesta, pero yo pensé en compartir lo siguiente:

nnoremap <kPlus> <C-a> 
nnoremap <kMinus> <C-x> 

Este incremento vuelve a asignar a la tecla + en el teclado numérico y decremento de la - clave. Es la solución que he usado en mi propio archivo _vimrc en Windows. Se mantiene la compatibilidad con Windows y es más fácil de recordar que el original Ctrl +Un/Ctrl +X también.

Cuestiones relacionadas