web-dev-qa-db-fra.com

VIM Ctrl-V Conflit avec le collage Windows

J'utilise VIM sous Windows. Le problème est que je veux utiliser CtrlV comme mode visuel. Cependant, cette clé est en conflit avec la pâte Windows. Comment puis-je réinitialiser cette clé sur VIM mode visuel au lieu de coller. Je préfère le définir dans mon fichier de configuration _vimrc.

107
David.Chu.ca

De la documentation VIM documentation :

Puisque CTRLV est utilisé pour coller, vous ne pouvez pas l'utiliser pour démarrer une sélection visuelle par blocs. Vous pouvez utiliser CTRLQ au lieu. Vous pouvez aussi utiliser CTRLQ en mode Insertion et en mode ligne de commande pour obtenir l'ancien sens de CTRLV. Mais CTRLQ ne fonctionne pas pour les terminaux lorsqu'il est utilisé pour contrôler le flux.

141
Alex

Vérifiez votre fichier _vimrc et voyez s'il source mswin.vim. Ce script mappe le ^ v à la pâte. Vous pouvez soit supprimer cette ligne sur 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.

39
jop

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 sur Windows, allez dans le menu d'édition, cliquez sur les paramètres de démarrage et commentez les ordures spécifiques à Windows (en utilisant le caractère de commentaire vimrc, qui est un guillemet double). Le fichier mswin.vim est l'endroit où la substitution ctrl-v est spécifiée, et l'option se comporter mswin fait en sorte que les touches fléchées n'appliquent pas simplement le mouvement comme vous vous en doutez (cela modifie é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 de fond noir, donc cela ressemble plus à ce que je verrais dans un terminal (et parce qu'un fond clair est super sur papier, mais horrible sur un écran rétro-éclairé): colorscheme koehler

24
dannysauer

Si cette ligne dans votre _vimrc vous dérange:

behave mswin

puis supprimez cette ligne.

20
Windows programmer

Je préfère les mêmes touches partout, donc je l'utilise 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
14
rshdev

Je ne suis pas sûr qu'il y ait beaucoup à faire à ce sujet. Vous pouvez utiliser CtrlQ à la place cependant.

7
Starkii

La combinaison des conseils de jop (à la recherche de 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é)

3
Rick Reynolds