web-dev-qa-db-fra.com

presse-papiers vim et system

Je peux lire un fichier, copier et coller du texte avec le bouton central ou insérer une insertion.

Comment puis-je copier du texte dans vim et le coller à partir du presse-papiers du système?

9
grantbow

Vous devez disposer de Vim avec les fonctions clipboard et xtermclipboard compilées. Dans Ubuntu, elles ne sont disponibles qu'avec les packages de l'interface graphique de vim (vim-gnome, vim-gtk, vim-athena, etc.).

Une fois que vous avez installé l’un d’eux, vous pouvez copier (et coller depuis) ​​les registres du presse-papiers (* et +). De ce post très informatif sur Vi et Vim :

Pour systèmes basés sur X11 (c'est-à-dire Linux et la plupart des autres UNIX - comme les systèmes), il y a 2 presse-papiers indépendants les uns des autres:

  • PRIMAIRE - Ceci est une copie sur sélection, et peut être collé avec le bouton central de la souris.
  • CLIPBOARD - Ceci est copié avec (généralement) ^C et collé avec ^V (c'est comme MS Windows).

Vim a 2 registres spéciaux correspondant à ces presse-papiers:

  • * utilise PRIMARY; mnémonique: s tar est s choisir (pour copie sur ( s élire)
  • + utilise CLIPBOARD; mnémonique: CTRL + C (pour le raccourci clavier commun)

Pour copier dans un registre, vous devez faire précéder la commande de copie (y) par " et le nom du registre (*, par exemple). "*y, puis cliquez avec le bouton du milieu pour coller, ou "+y et ShiftInsert coller.

11
muru

Une solution assez intéressante vient de this question. Installez xclip, puis dirigez la sortie d'une commande vers xclip (cat file | xclip -selection clipboard par exemple), puis collez-la n'importe où (si c'est dans terminal - use CtrlShiftV ). Maintenant, vous pouvez raccourcir cette commande en xclip -sel clip, ce qui n’apparaît pas à la lecture de la page de manuel ou des exemples qui y figurent.

3

J'ai eu un problème parce que mon vim ne supportait pas presse-papiers:

vim --version | grep clip
-clipboard       +insert_expand   +path_extra      +user_commands
+emacs_tags      -mouseshape      +startuptime     -xterm_clipboard

J'ai installé vim-gnome (qui supporte le presse-papiers) puis vérifié à nouveau:

vim --version | grep clipboard
+clipboard       +insert_expand   +path_extra      +user_commands
+emacs_tags      +mouseshape      +startuptime     +xterm_clipboard

Maintenant, je peux copier et coller en utilisant "+ y et" + p respectivement.

2