Question Comment copier dans le presse-papiers dans Vim?


Est-il possible de copier dans le presse-papiers directement à partir de Vim? yy Copie seulement des trucs dans le tampon interne de Vim. Je veux copier dans le presse-papiers du système d'exploitation. Y at-il une telle commande dans Vim ou vous pouvez seulement tirer des choses au sein de Vim?


555
2017-10-18 17:49


origine


Réponses:


le * registre va le faire. Dans Windows, + et * sont équivalents. Dans unix il y a une différence subtile entre + et *:

Sous Windows, les registres * et +   sont équivalents. Pour les systèmes X11,   cependant, ils diffèrent. Pour les systèmes X11,   * est la sélection, et + est le tampon de coupe (comme le presse-papiers).    http://vim.wikia.com/wiki/Accessing_the_system_clipboard

* est probablement ce que vous voulez la plupart du temps, donc j'utilise * car il fonctionne comme je le souhaite dans les deux environnements.

Dans les distributions Linux, pour une raison ou pour une autre, vous devez d'abord installer vim-gtk pour obtenir les fonctionnalités du presse-papiers.

Et pour ceux qui sont confus sur la façon d'utiliser les registres en tirant ou en mettant, vous écrivez simplement " alors le nom du registre. Donc, pour copier quelque chose dans le registre de presse-papiers que vous tapez "*y puis de vous mettre en forme "*p


387
2017-10-18 17:59



Sur Mac OSX

  • copier la partie sélectionnée: sélectionner visuellement le texte (type v ou V en normal mode) et le type :w !pbcopy

  • copier le fichier entier :%w !pbcopy

  • coller à partir du presse-papiers :r !pbpaste

Sur plus  Linux Distros, vous pouvez remplacer:

  • pbcopy ci-dessus avec xclip -i -sel c ou xsel -i -b
  • pbpaste en utilisant xclip -o -sel -c ou xsel -o -b
    - Remarque:  Dans le cas où aucun de ces outils (xsel et xclip) sont préinstallés sur votre distribution, vous pouvez probablement les trouver dans le repos

250
2018-04-12 12:31



Dans votre fichier vimrc, vous pouvez spécifier d'utiliser automatiquement le presse-papiers du système pour copier et coller.

Sur Windows définir:

set clipboard=unnamed

Sous Linux (vim 7.3.74+):

set clipboard=unnamedplus

Remarque: vous devrez peut-être utiliser une version à jour de Vim pour que ceux-ci fonctionnent.

http://vim.wikia.com/wiki/Accessing_the_system_clipboard


119
2018-06-11 11:51



Utilisez le registre "+ copier dans le presse-papiers du système (c.-à-d. "+y au lieu de y).

De même, vous pouvez coller à partir de "+ pour obtenir du texte à partir du presse-papiers du système (c.-à-d. "+p au lieu de p).


110
2017-10-18 17:51



@Jacob Dalton a mentionné cela dans un commentaire, mais personne ne semble avoir mentionné dans une réponse que vim doit être compilé avec le support du presse-papier pour que l'une des suggestions mentionnées ici fonctionne. Le mien n'était pas configuré de cette façon sur Mac OS X par défaut et j'ai dû reconstruire vim. Utilisez cette commande pour savoir si vous l'avez ou non vim --version | grep 'clipboard'. +clipboard signifie que vous êtes bon et les suggestions ici travailleront pour vous, tandis que -clipboard signifie que vous devez recompiler et reconstruire vim.


51
2017-07-27 19:48



Résumer et faciliter les choses pour les débutants,

Pour copier la ligne actuelle, en mode commande, tapez:

"*yy

Pour copier l'ensemble du fichier / buffer, en mode commande, allez d'abord au début via gg, puis tapez

"*yG

Comme indiqué, cela nécessite +clipboard hors de vim --version, qui indiquent la disponibilité du support de presse-papiers, -clipboard signifie non.


48
2018-05-07 08:04



Je n'étais pas capable de copier dans le système de mon presse-papiers parce que j'avais ceci dans mon fichier ~ / .vimrc:

 if has('mouse')
   set mouse=a
 endif

Mais si vous ajoutez cette ligne ensuite, cela vous permettra de simplement Ctrl+c pour obtenir ce que vous avez sélectionné dans votre presse-papiers.

vmap <C-c> "+y

Discussion originale et plus de détails: Copier le texte de vim avec set mouse = a enabled


19
2018-03-03 18:38



Si vous utilisez vim dans MAC OSX, il est malheureusement accompagné d'une version antérieure et n'est pas compatible avec les options du presse-papier. Heureusement, homebrew peut facilement résoudre ce problème.

installez vim: 

brew install vim --with-lua --with-override-system-vim

installez gui verion de vim: 

brew install macvim --with-lua --with-override-system-vim

redémarrez le terminal pour prendre effet.


ajouter la ligne suivante à ~ / .vimrc
set clipboard=unnamed

maintenant vous pouvez copier la ligne dans vim avec yy et collez-le à l'échelle du système.



Méthode mise à jour:

Je n'ai jamais été satisfait de la méthode du presse-papiers depuis des années. Le plus grand inconvénient est qu'il va gâcher votre historique de presse-papiers, même lorsque vous utilisez x pour la suppression. Voici une solution meilleure et plus élégante.

  1. Copiez le texte [range] de vim dans le presse-papiers du système. (Indice: utiliser v ou V pour sélectionner la plage d'abord, puis tapez le colon : pour activer la commande Ex):
    :[range]yank +
    par exemple.,
    :5,10y *  (copier / extraire les lignes 5-10 dans le presse-papiers du système * registre)

  2. Collez le contenu du presse-papiers du système dans vim sur une nouvelle ligne:
    :put +


17
2017-08-16 07:45