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
)
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.
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 "+
.
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.
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>
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.
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
.
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 "
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.
dans mon cas, je devais juste faire:
:set mouse=v
s'il vous plaît visitez la solution originale sur superuser.com
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.
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
je viens d'essayer le
map <C-x> :!pbcopy<CR>
vmap <C-c> :w !pbcopy<CR><CR>
ça a très bien marché.
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
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
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.
sur mac quand quelque chose d'autre semble fonctionner - sélectionnez avec la souris, clic droit choisir la copie. uff
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.
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
ce qui a fonctionné pour moi dans mon .vimrc
set clipboard=unnamed
if has("unnamedplus") " X11 support
set clipboard+=unnamedplus
endif
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)
commande-c travaille pour moi à la fois MacVim et dans le terminal.