VIM Ctrl-V Conflicto con Windows Paste

110

Estoy usando VIM en Windows. El problema es que quiero usarlo CtrlVcomo modo visual. Sin embargo, esta clave entra en conflicto con el pegado de Windows. ¿Cómo puedo restablecer esta clave al modo visual VIM en lugar de pegar? Prefiero configurar esto en mi archivo de configuración _vimrc.

David.Chu.ca
fuente

Respuestas:

145

De la documentación de VIM :

Dado que CTRLVse usa para pegar, no puede usarlo para iniciar una selección visual en bloque. Puede utilizar CTRLQen su lugar. También puede usar CTRLQen el modo Insertar y en el modo de línea de comandos para obtener el antiguo significado de CTRLV. Pero CTRLQ no funciona para terminales cuando se usa para controlar el flujo.

Alex
fuente
2
Me gusta más esto que jugar con _vimrc. Funciona de inmediato y, dado que es poco probable que esté en terminales seriales en el futuro, el control de flujo Ctrl-S / Ctrl-Q no es un problema.
Michael Dillon
En Linux (terminal Gnome) encontré que era mejor usar CTRL-K CR , pero encontré esta respuesta primero.
jalanb
3
Por alguna razón, necesitaba usar la Shiftclave para la selección visual en Windows, mientras que no lo hago en Linux.
stevesliva
1
¡Gracias user132014! Sin embargo, encuentro que tienes que usar h, j, kyl para navegar en el modo de bloque visual usando Ctrl-Q. Este es el caso del editor gVim para Windows. Las flechas no parecen funcionar para mí en gVim para Windows cuando navego en modo de bloque visual usando Ctrl-Q.
Ratnesh Chandna
3
@RatneshChandna - ¿Usar Shiftjunto con las flechas? Estoy viendo el mismo comportamiento, pero de alguna manera descubrí que Shiftfuncionó. No sabía que h / j / k / l trabajaba.
stevesliva
40

Verifique su archivo _vimrc y vea si obtiene mswin.vim. Ese script asigna ^ v a la pasta. Puede eliminar esa línea en su archivo _vimrc o deshabilitar los comandos de mapeo directamente en mswin.vim.

Haz un: ayuda a comportarte en vim para obtener más información.

jop
fuente
24

El modo visual (y otras cosas) que funcionan como en Unix requiere las sugerencias de JOP y del programador de Windows.

En GVim en Windows, vaya al menú de edición, haga clic en la configuración de inicio y comente la basura específica de Windows (usando el carácter de comentario vimrc, que es una comilla doble). El archivo mswin.vim es donde se especifica ctrl- voverride, y la opción behave mswin hace que las teclas de flecha no solo apliquen el movimiento como cabría esperar (también cambia el comportamiento de selección del mouse).

"source $VIMRUNTIME/mswin.vim
"behave mswin

También me gusta agregar un esquema de colores de fondo negro allí, para que se parezca más a lo que vería en una terminal (y porque un fondo claro es genial en papel, pero horrible en una pantalla retroiluminada): colorscheme koehler

dannysauer
fuente
20

Si esta línea en su _vimrc le preocupa:

behave mswin

luego borre esa línea.

Programador de Windows
fuente
14

Prefiero las mismas pulsaciones de teclas en todas partes, así que uso esto en mi .vimrc para anular mswin.vim:

if has('win32')
  " Avoid mswin.vim making Ctrl-v act as paste
  noremap <C-V> <C-V>
endif
rshdev
fuente
7

No estoy seguro de que puedas hacer mucho al respecto. Sin CtrlQembargo, puedes usarlo .

Starkii
fuente
4

La combinación del consejo de jop (buscando mswin.vim en el archivo _vimrc predeterminado) y el consejo del "programador de Windows" (deshacerse de la línea "comporta mswin") funcionó como un encanto para mí.

(mi reputación es demasiado baja para votarlos o combinarlos; alguien me lo limpiará o volveré una vez que mi reputación sea mayor)

Rick Reynolds
fuente
3
En otras palabras, ¿estabas intentando dejar un comentario?
Christopher Bottoms
1
Je, soy un usuario de stackoverflow poco frecuente (de ahí mi baja reputación)
Rick Reynolds