online mvim mac improved windows windows-xp vi vim

windows - mvim - vim on mac



La selección de bloque de columna solo para teclado en GVim Win32, o ¿por qué Ctrl-Q no emula Ctrl-V cuando se incluye mswin.vim? (3)

Quiero poder seleccionar bloques de columnas usando solo el teclado cuando uso GVim en Windows, pero parece que no puedo hacerlo cuando uso gvim (7.2) en Windows XP. Edición: por conveniencia, es preferible hacer la selección con las teclas de flecha como se hace comúnmente en otras versiones de vi / vim.

En una terminal, cuando se usa vim, para definir un bloque, se pueden seleccionar bloques de columnas presionando Ctrl-V y moviendo el cursor con las teclas de flecha .

Cuando se usa GVim en mswin, Ctrl-V se asigna a una operación de pegado. Cada referencia encontrada en este tema menciona que en mswin, Ctrl-Q está configurado para actuar de la misma manera que Ctrl-V funciona en otras plataformas, pero esto no funciona para mí.

Después de que la investigación indicó que el comportamiento Ctrl-Q se implementa a través de la inclusión de mswin.vim, parecía que tal vez mwin.vim no estaba siendo cargado por GVim. mswin.vim aparentemente se carga a través de _vimrc. Parecía que tal vez mswin.vim no se estaba cargando, así que tal vez _vimrc no se configuró correctamente, pero ...

C:/Program Files/Vim/_vimrc existe contiene:

source $VIMRUNTIME/mswin.vim behave mswin

C:/Program Files/Vim/vim72/mswin.vim existe y contiene:

" Use CTRL-Q to do what CTRL-V used to do noremap <C-Q> <C-V>

C:/Program Files/Vim/_vimrc debería cargarse desde Editar | La ventana de configuración en el menú gráfico de GVim carga este archivo para su edición, y está claro que C:/Program Files/Vim/vim72/mswin.vim está cargando porque se puede insertar un error de sintaxis en ese archivo y GVim se quejará cuando se inicia (se realizó una copia de seguridad para su prueba y se restauró para evitar daños accidentales).

Cuando se presiona Ctrl-Q , el cursor cambia de la misma manera que cambia cuando bloquea el texto seleccionado con el mouse, pero cualquier movimiento del cursor en este punto hace que el cursor vuelva a un cursor normal. No importa si uno mantiene presionado Ctrl , Ctrl-Q o no.

Edición: Ctrl-Q ingresa en el modo de selección de bloque como lo indica el cambio del cursor, ya que otros comandos de movimiento del cursor extienden el bloque, sin embargo, la intención original de esta pregunta fue aprender a usar las teclas de flecha (de la misma manera que pueden hacerlo). para ser utilizado en otras implementaciones del editor), aunque esto no se mencionó explícitamente en las revisiones originales sin respuesta de la pregunta.

Es posible seleccionar visualmente los bloques de columnas presionando Alt mientras se mantiene presionado el botón izquierdo del ratón, pero Alt durante el movimiento de la tecla de flecha después de presionar Ctrl-Q tampoco funciona.

La investigación también pareció indicar que al presionar v en el modo de comando entraría en el modo visual, y que quizás esto fue relevante, pero el uso de esto no parece ayudar a la situación.

C:/Program Files/Vim/vimfiles no contiene nada excepto una estructura de directorio vacía. C:/Documents and Settings/username no contiene archivos de configuración de vim, ni C:/Documents and Settings/username/My Documents . Otras ubicaciones de C:/Documents and Settings/username , donde las configuraciones locales o específicas de la aplicación se almacenan comúnmente, también parecen no tener configuraciones de vim. Lo mismo es cierto para% HOMEDRIVE% y para las variables de entorno.


El noremap <CQ> <CV> en mswin.vim vuelve a asignar el comando original a Ctrl + Q.

Si se incluye mswin.vim, después de presionar Ctrl + Q , el modo indicado debería cambiar a Bloqueo visual , y cualquier movimiento (por ejemplo, j , l , w ) extiende la selección visual. Si eso no funciona para usted, puede tener algo que interfiere.

¿Se han autocmd a CursorMoved esos comandos de movimiento, o hay un autocmd en CursorMoved ? Intente deshabilitar sus complementos ( vim --noplugin ) y la mayoría de las partes de su .vimrc .

Tenga en cuenta que las teclas del cursor normalmente no constituyen un movimiento adecuado (y su uso en Vim está mal visto).

Lo que percibe como la forma correcta (y única) de extender la selección (con las teclas de cursor desplazadas) es solo una consecuencia de :set selectmode=key , como lo hace :behave mswin .


Lo mejor que puedes hacer es eliminar estas líneas de tu vimrc. Son totalmente innecesarios y cambian demasiadas funciones básicas de Vim.


Una forma de seleccionar visualmente los bloques de columnas en GVim en Win32 usando solo el teclado es presionar Ctrl-Q , soltarlo, luego presionar y mantener presionada la tecla Mayús mientras usa las teclas de flecha para seleccionar el bloque de columnas.

No se sabe por qué la selección de columnas Ctrl-Q se comporta de esta manera, pero en realidad no importa, ya que el objetivo era seleccionar bloques de columnas utilizando solo el teclado. En Vim, Shift no se usa cuando se usa Ctrl-V para seleccionar bloques.

:help mswin no menciona este matiz de la alternativa CTRL-V .