Vim: sélection de la copie au bloc-notes OS X

dit que vous avez une zone sélectionnée à vim. Comment Pouvez-vous le copier dans le bloc-notes OS X?

(indice: le bloc-notes OS X peut être écrit via pipe à /usr/bin/pbcopy )

209
demandé sur Arslan Ali 2009-03-24 18:41:23

25 réponses

selon la version de vim que j'utilise, je peux utiliser le + register pour accéder au presse-papiers.

http://vim.wikia.com/wiki/Mac_OS_X_clipboard_sharing peut avoir quelques idées qui fonctionnent pour vous aussi.

71
répondu Chris AtLee 2009-03-24 15:45:45

pour MacVim et Windows Gvim, il suffit d'ajouter ce qui suit à votre ~/.vimrc :

set clipboard=unnamed

maintenant toutes les opérations telles que yy , D , et P travailler avec le bloc-notes. Il n'est pas nécessaire de les préfixer par "* ou "+ .

226
répondu George V. Reilly 2014-06-25 23:45:50

si le bloc-notes est activé, vous pouvez copier une région sélectionnée dans le bloc-notes en appuyant sur "*y

pour voir si elle est activée, o une version vim --et chercher +clipboard ou -clipboard . Par exemple, il n'est pas activé par défaut sur ma boîte 10.5.6:

% which vim
/usr/bin/vim
% vim --version
VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Nov 11 2008 17:20:43)
Included patches: 1-22
Compiled by _www@b77.apple.com
Normal version without GUI.  Features included (+) or not (-):
...
-clientserver -clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments
...

s'il avait été compilé avec +clipboard , je pourrais utiliser le registre "* pour accéder au système de presse-papiers.

j'ai téléchargé le 7.2 source et compilé (facile comme tar xjf vim-7.2.tar.bz && cd vim72 && ./configure && make && sudo make install ), et le bloc-notes a été activé:

% which vim
/usr/local/bin/vim
% vim --version
VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Mar 24 2009 17:31:52)
Compiled by rampion@Myrrhy.local
Normal version with GTK2 GUI.  Features included (+) or not (-):
...
+clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments
...

cependant, même après compilation, Je ne pouvais pas copier dans le presse-papiers lors de l'exécution de vim dans le Terminal.app, seulement en X11.App.

133
répondu rampion 2009-03-24 21:55:14

vous pouvez sélectionner visuellement le texte et taper :w !pbcopy<CR>

ou vous pouvez inclure les correspondances ci-dessous dans votre fichier ~/.vimrc . Ils découpent/copient du texte en mode visuel sur le bloc-notes du système d'exploitation.

vmap <C-x> :!pbcopy<CR>  
vmap <C-c> :w !pbcopy<CR><CR> 

source: http://drydevelopment.com/blog/vim-pbcopy-on-os-x

88
répondu user242065 2015-04-20 06:57:02

double citation asterisk ( " * ) avant qu'une commande yank ne lance les résultats dans le tampon de copie. Cela fonctionne aussi pour Windows et Linux.

36
répondu Paul Tomblin 2015-08-12 16:46:51

sur macos 10.8, vim est compilé avec -clipboard donc pour utiliser "*y vous aurez besoin de recompiler. Heureusement brew install vim compilerait une nouvelle version facilement pour vous et ce sera +clipboard .

25
répondu nikola 2013-08-31 23:32:03

sélectionner visuellement le texte et le type:

ggVG
!tee >(pbcopy)

que je trouve plus beau que:

ggVG
:w !pbcopy

Puisqu'il ne flash pas un prompt: "Press ENTER or type command to continue "

16
répondu James Scriven 2013-06-15 17:56:51

si vous utilisez MacPorts, vous pouvez mettre à jour votre VIM pour inclure le support du presse-papiers via:

port install vim +x +x11

maintenant vous utilisez le " + Enregistrer pour yank votre texte directement à votre bloc-notes Mac. Fonctionne comme un charme.

11
répondu Matt Hughes 2010-02-06 00:21:16

dans mon cas, je devais juste faire:

:set mouse=v

s'il vous plaît visitez la solution originale sur superuser.com

8
répondu Telmo Dias 2017-03-20 10:04:24

si vous êtes sur MacOS X:

$ brew install vim
$ vim --version
VIM - Vi IMproved 7.4 [...]

alors, ajoutez à votre .vimrc:

set clipboard=unnamed

Maintenant vous avez juste besoin d'être dans vim et faire :%y , pour avoir tout le contenu copié à votre bloc-notes.

7
répondu Jose Alban 2015-06-09 15:29:48

si votre vim n'est pas compilé avec clipboards, vous souhaitez copier du texte sélectionné au lieu de lignes entières, vous ne voulez pas installer macvim ou D'autres GUI, la solution la plus simple est d'ajouter cette ligne à votre .vimrc:

map <C-c> y:e ~/clipsongzboard<CR>P:w !pbcopy<CR><CR>:bdelete!<CR>

pour l'utiliser, Sélectionnez simplement visuellement le texte que vous voulez copier, puis contrôlez-C. Si vous voulez une explication complète de cette ligne, lire ici

4
répondu songz 2014-01-09 21:44:56

je viens d'essayer le

map <C-x> :!pbcopy<CR>
vmap <C-c> :w !pbcopy<CR><CR>

ça a très bien marché.

4
répondu user3133576 2015-06-03 06:25:38

Utiliser Homebrew vim: brew install vim

Mac (à partir de 10.10.3 Yosemite) est pré-installé avec un système vim qui ne pas ont le drapeau clipboard activé.

vous pouvez soit compiler vim pour vous-même et activer ce drapeau, ou tout simplement utiliser le Vim de Homebrew qui est configuré correctement.

pour voir cela par vous-même, consultez le système de stock vim avec /usr/bin/vim --version

, Vous verrez quelque chose comme:

$ /usr/bin/vim --version

VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Nov  5 2014 21:00:28)
Compiled by root@apple.com
Normal version without GUI.  Features included (+) or not (-):
... -clientserver -clipboard +cmdline_compl ...

Note la -clipboard

Avec homebrew de vim, vous obtenez plutôt

$ /usr/local/bin/vim --version

VIM - Vi IMproved 7.4 (2013 Aug 10, compiled May 10 2015 14:04:42)
MacOS X (unix) version
Included patches: 1-712
Compiled by Homebrew
Huge version without GUI.  Features included (+) or not (-):
... +clipboard ...

Note la +clipboard

3
répondu Evan 2015-05-10 21:19:12
"151900920 de la commande"-C? Cela fonctionne au moins pour le vim lancé à partir de L'intérieur du Terminal.app pour le texte sélectionné avec la souris.

2
répondu mouviciel 2009-03-24 15:45:23

vous pouvez utiliser MacVim lorsque vous êtes sur un Mac pour accéder facilement au presse-papiers en utilisant les clés OS standard.

c'est aussi complètement rétro compatible avec la Vim normale, donc je n'ai même pas besoin d'avoir un .vimrc séparé .

2
répondu matpie 2009-03-24 15:58:19

Fakeclip implémente les tampons + et * s'ils ne sont pas supportés nativement.

2
répondu redacted 2009-05-25 20:08:08

mon problème principal était la version osx par défaut de VIM. L'installation par homebrew a ajouté +clipboard à la compilation.

consultez

vim --version

s'il est écrit -clipboard ou +clipboard

2
répondu frbl 2015-05-09 19:25:57

si vous avez l'option +presse-papiers sur votre installation VIM (vous pouvez vérifier avec :version) et que vous êtes en mode visuel, vous pouvez faire "+y cela va faire glisser la sélection sur le tampon + qui est le presse-papiers.

j'ai ajouté les cartes suivantes à mon vimrc et il fonctionne très bien.

vmap y" +y avec ceci je peux faire clé leader suivi de y à copier sur le bloc-notes en mode visuel

nmap p" +p avec ceci je peux faire clé leader suivi de p coller du bloc-notes sur le mode normal.

PD: sur Ubuntu j'ai dû installer vim-gtk pour obtenir l'option +presse-papiers.

2
répondu Andrés Hazard 2015-10-26 04:23:26

pour les utilisateurs Ubuntu, le paquet que vous souhaitez récupérer pour utiliser le presse-papiers est vim-full. Les autres paquets (vim-tiny, vim) ne comprennent pas le bloc-notes.

0
répondu 2009-05-25 19:12:12

sur mac quand quelque chose d'autre semble fonctionner - sélectionnez avec la souris, clic droit choisir la copie. uff

0
répondu tom 2014-01-03 07:08:07

je suis actuellement sur OS X 10.9 et mes efforts pour compiler vim avec +xterm_clipboard ne m'ont rien apporté. Donc ma solution actuelle est d'utiliser MacVim en mode terminal avec l'option set clipboard=unnamed dans mon ~/.dossier vimrc. Fonctionne parfaitement pour moi.

0
répondu Yaroslav Melnichuk 2017-05-23 11:55:00

je rencontre le même problème, après l'installation macvim toujours pas de travail, finalement j'ai trouvé un moyen de résoudre:

essayer de désinstaller tout vim d'abord,

brew uninstall macvim

brew uninstall --force vim

et réinstaller macvim

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

alors vous pouvez utiliser "*y ou "+y , ne pas avoir à set clipboard=unnamed

0
répondu Bruce 2017-11-15 01:28:13

ce qui a fonctionné pour moi dans mon .vimrc

set clipboard=unnamed
if has("unnamedplus") " X11 support
    set clipboard+=unnamedplus
endif
0
répondu maged 2018-06-02 23:58:48

copier sur presse-papiers en utilisant le registre ' + ' ou ' * ' ne fonctionne pas?

raison: votre version particulière de vim a été compilée sans support de presse-papiers.Tapez vim --verion sur la console et vous verrez - xterm_clipboard . L'installation de vim avec les paquets gui résout ce problème. Sur ubuntu, vous pouvez le faire en tapant sur l'enveloppe:

sudo apt-get install vim-gui-common

maintenant encore faire vim -- version sur console. Très probablement, vous verriez +xterm_clipboard maintenant!!

ainsi, Maintenant vous pouvez copier n'importe quoi au bloc-notes en utilisant le Registre + (comme "+yy pour copier la ligne courante au bloc-notes)

-1
répondu VineetChirania 2013-08-13 19:43:07

commande-c travaille pour moi à la fois MacVim et dans le terminal.

-2
répondu Matt Williamson 2010-08-12 16:22:25