Conflit VIM Ctrl-V avec Windows Paste

110

J'utilise VIM sous Windows. Le problème est que je souhaite l'utiliser CtrlVcomme mode visuel. Cependant, cette clé est en conflit avec le collage Windows. Comment puis-je réinitialiser cette clé en mode visuel VIM au lieu de la coller. Je préfère définir cela dans mon fichier de configuration _vimrc.

David.Chu.ca
la source

Réponses:

145

À partir de la documentation VIM :

Comme il CTRLVest utilisé pour coller, vous ne pouvez pas l'utiliser pour démarrer une sélection visuelle par blocs. Vous pouvez utiliser à la CTRLQplace. Vous pouvez également utiliser CTRLQen mode Insertion et en mode Ligne de commande pour obtenir l'ancienne signification de CTRLV. Mais CTRLQ ne fonctionne pas pour les terminaux lorsqu'il est utilisé pour contrôler le flux.

Alex
la source
2
J'aime mieux ça que de jouer avec _vimrc. Cela fonctionne immédiatement et comme il est peu probable que je sois sur des terminaux série à l'avenir, le contrôle de flux Ctrl-S / Ctrl-Q n'est pas un problème.
Michael Dillon
Sur Linux (terminal Gnome), j'ai trouvé préférable d'utiliser CTRL-K CR , mais j'ai trouvé cette réponse en premier.
jalanb
3
Pour une raison quelconque, j'avais besoin d'utiliser la Shifttouche pour la sélection visuelle sous Windows, contrairement à Linux.
stevesliva
1
Merci user132014! Je trouve que vous devez utiliser h, j, k et l pour naviguer en mode bloc visuel en utilisant Ctrl-Q, cependant. C'est le cas de l'éditeur gVim pour Windows. Les flèches ne semblent pas fonctionner pour moi dans gVim pour Windows lorsque vous naviguez en mode bloc visuel en utilisant Ctrl-Q.
Ratnesh Chandna
3
@RatneshChandna - Utiliser Shiftavec les flèches? Je vois le même comportement, mais j'ai découvert que cela Shiftfonctionnait. Je ne savais pas que h / j / k / l fonctionnait.
stevesliva
40

Vérifiez votre fichier _vimrc et voyez s'il sources mswin.vim. Ce script mappe le ^ v à la pâte. Vous pouvez soit supprimer cette ligne de votre fichier _vimrc, soit désactiver les commandes de mappage directement sur mswin.vim.

Faites un: aidez-vous à vous comporter sur vim pour plus d'informations.

sauter
la source
24

Le mode visuel (et d'autres choses) fonctionnant comme sous Unix nécessite à la fois les suggestions de JOP et de Windows Programmer.

Dans GVim sous Windows, allez dans le menu d'édition, cliquez sur les paramètres de démarrage et commentez les déchets spécifiques à Windows (en utilisant le caractère de commentaire vimrc, qui est un guillemet double). Le fichier mswin.vim est l'endroit où le ctrl- voverride est spécifié, et l'option behave mswin fait en sorte que les touches fléchées n'appliquent pas simplement le mouvement comme vous le souhaiteriez (cela change également le comportement de sélection de la souris).

"source $VIMRUNTIME/mswin.vim
"behave mswin

J'aime aussi y ajouter un schéma de couleurs sur fond noir, donc cela ressemble plus à ce que je verrais dans un terminal (et parce qu'un fond clair est génial sur papier, mais horrible sur un écran rétroéclairé): colorscheme koehler

Dannysauer
la source
20

Si cette ligne de votre _vimrc vous dérange:

behave mswin

puis supprimez cette ligne.

Programmeur Windows
la source
14

Je préfère les mêmes frappes partout, donc j'utilise ceci dans mon .vimrc pour remplacer mswin.vim:

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

Je ne suis pas sûr que vous puissiez faire grand-chose à ce sujet. Vous pouvez utiliser à la CtrlQplace.

Starkii
la source
4

La combinaison des conseils de jop (chercher mswin.vim dans le fichier _vimrc par défaut) et des conseils du "programmeur Windows" (se débarrasser de la ligne "behave mswin") a fonctionné comme un charme pour moi.

(mon représentant est trop faible pour les voter ou les combiner - quelqu'un nettoie cela pour moi, ou je reviendrai une fois que mon représentant sera plus élevé)

Rick Reynolds
la source
3
En d'autres termes, essayiez-vous de laisser un commentaire?
Christopher Bottoms
1
Heh, je suis un utilisateur peu fréquent de stackoverflow (d'où ma faible réputation)
Rick Reynolds