58 votes

Comment faire pour que couper/copier/coller dans GVim sur Ubuntu fonctionne avec Ctrl+X,Ctrl+C,Ctrl+V ?

Par défaut, les raccourcis couper/copier/coller dans GVim sur Ubuntu sont les suivants :

 Cut    "+x
 Copy   "+y
 Paste  "+gP

J'aimerais utiliser des combinaisons de touches de contrôle dans GVim, comme je le fais dans Firefox et d'autres applications gnome. Comment puis-je configurer GVim pour qu'il fonctionne comme les autres applications Gnome ?

54voto

Gishu Points 59012

Ajoutez les lignes suivantes à votre _vimrc ou .vimrc

source $VIMRUNTIME/mswin.vim
behave mswin

Mais attention, le mode visuel est alors CTRL-Q au lieu de CTRL-V.

Pour une vue d'ensemble de ce que fait mswin.vim, voir la section code source mswin.vim . Il est très bien commenté et si une commande n'est pas claire, vous pouvez facilement la chercher dans l'aide de vim. l'aide de vim.

Voici un rapide aperçu compilé à partir de la source :

  • les touches de retour arrière et de curseur passent à la ligne précédente/suivante
  • CTRL-X et SHIFT-Del sont des coupures.
  • CTRL-C et CTRL-Insert sont des copies.
  • CTRL-V et SHIFT-Insert sont Coller
  • Utilisez CTRL-Q pour faire ce que CTRL-V faisait auparavant.
  • Utilisez CTRL-S pour sauvegarder, également en mode insertion.
  • CTRL-Z est Undo ; pas dans la ligne cmd cependant.
  • CTRL-Y est Redo (mais pas repeat) ; pas dans cmdline cependant.
  • Alt-Space est le menu système
  • CTRL-A est Sélectionner tout
  • CTRL-Tab est la fenêtre suivante
  • CTRL-F4 est Fermer la fenêtre

A la demande de Nippysaurus : J'ai mis ce qui suit dans mon .gvimrc pour afficher Ctrl-V en plus de Coller dans le menu :

unmenu! Edit.Paste
aunmenu Edit.Paste
nnoremenu 20.360 &Edit.&Paste<Tab>Ctrl-V        "+gP
cnoremenu    &Edit.&Paste<Tab>Ctrl-V        <C-R>+

Je ne l'ai pas testé en profondeur, juste une vérification rapide pour voir s'il faisait ce que j'attendais. Cela fonctionne pour moi, j'espère que cela fonctionnera pour vous;-)

54voto

sudhakar Points 1

Si vous voulez que Couper/Copier/Coller fonctionne en utilisant les touches de raccourci "standard", mais que vous ne voulez pas modifier les autres options de configuration de gvim, essayez d'ajouter ce qui suit à la section ~/.vimrc .

vmap <C-c> "+yi
vmap <C-x> "+c
vmap <C-v> c<ESC>"+p
imap <C-v> <C-r><C-o>+

Le collage ne fonctionne qu'en mode visuel et en mode insertion. Vous n'avez donc pas à vous soucier du conflit avec Ctrl-V et le mode visuel en bloc. Ce n'est pas un problème, car Copier et Couper vous mettent en mode insertion, et vous pouvez donc coller immédiatement après. Si vous l'essayez, vous verrez que c'est tout à fait naturel.

J'ai trouvé cette configuration après plusieurs itérations de réglages, et je pense qu'elle est "parfaite" maintenant. Si vous êtes un tant soit peu insatisfait de votre configuration actuelle de copier/coller, essayez-la et je parie que vous l'adorerez.

9voto

buti-oxa Points 6428

Si vous souhaitez conserver le comportement normal de vim tout en permettant une utilisation moins contraignante du presse-papiers du système, consultez la page suivante Accès au presse-papiers du système . Si vous souhaitez que gvim utilise le presse-papiers du système comme tampon par défaut (de sorte que tout ce qui a été écrit dans le presse-papiers ne sera pas pris en compte. x , y , p etc. utilise le presse-papiers), ajoutez la ligne suivante à votre vimrc :

set clipboard=unnamed

Personnellement, j'utilise les tampons bien plus à l'intérieur de vim qu'entre vim et le système ; je préfère donc avoir un raccourci légèrement plus encombrant plutôt que d'avoir le presse-papiers du système constamment endommagé. Mais c'est bien que l'option soit là pour ceux qui la préfèrent.

2voto

Chris Smith Points 7465

Je pense que vous pouvez l'ajouter avec la commande :imap (j'ai essayé de le faire avec Ctrl+X sous Windows, ce qui a fonctionné, mais le fait d'appuyer sur ctrl+c semble annuler la commande, donc vous devrez peut-être le faire dans vimrc).

:imap <C-X> "+x
:imap <C-C> "+y 
:imap <C-V> "+gP

Si vous l'ajoutez à votre ~/.vimrc, il vous suffit d'enlever le : devant imap.

imap n'ajoute les liaisons qu'en mode insertion, vous pouvez donc le remplacer par map ou autre chose. Regardez dans :help mapmode pour en savoir plus sur le remappage et le démappage.

Bonne chance !

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X