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.

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.


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.


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



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

7

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


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)


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.