Supposons que vous ayez sélectionné une zone dans vim. Comment pouvez-vous le copier dans le presse-papiers OS X?
(Astuce: le presse-papier OS X peut être écrit via un tube dans /usr/bin/pbcopy
)
En fonction de la version de vim que j'utilise, je peux utiliser le registre + pour accéder au presse-papiers.
http://vim.wikia.com/wiki/Mac_OS_X_clipboard_sharing peut avoir des idées qui fonctionnent aussi pour vous.
Pour MacVim et Windows Gvim, ajoutez simplement ce qui suit à votre ~/.vimrc
:
set clipboard=unnamed
Toutes les opérations telles que yy
, D
et P
fonctionnent avec le Presse-papiers. Pas besoin de les préfixer avec "*
ou "+
.
Si le Presse-papiers est activé, vous pouvez copier une région sélectionnée dans le Presse-papiers en appuyant sur "*y
.
Pour voir s'il est activé, o vim --version et cherchez +clipboard
ou -clipboard
. Par exemple, il n’est pas activé par défaut sur ma boîte 10.5.6:
% qui vim /usr/bin/vim % vim --version VIM - Vi IMproved 7.2 (9 août 2008, compilé le 11 novembre 2008 à 17:20:43). -22 Compilé par [email protected] Version normale sans interface graphique. Caractéristiques incluses (+) ou non (-):... -serveur client -clipboard + cmdline_compl + cmdline_hist + cmdline_info + comments ...
S'il avait été compilé avec +clipboard
, je pourrais utiliser le registre "*
pour accéder au presse-papiers du système.
J'ai téléchargé le fichier 7.2 source et je l'ai compilé (aussi simple que tar xjf vim-7.2.tar.bz && cd vim72 && ./configure && make && Sudo make install
), et le presse-papier a été activé:
% vim /usr/local/bin/vim % vim --version VIM - Vi IMproved 7.2 (9 août 2008, compilé le 24 mars 2009 17:31:52). [email protected] Version normale avec interface graphique GTK2. Caractéristiques incluses (+) ou non (-):... + serveur client + presse-papier + cmdline_compl + cmdline_hist + cmdline_info + comments ...
Cependant, même après la compilation, je ne pouvais pas copier dans le presse-papiers lors de l'exécution de vim dans Terminal.app, uniquement dans X11.app.
Vous pouvez sélectionner visuellement du texte et taper :w !pbcopy<CR>
Ou vous pouvez inclure les mappages de touches ci-dessous dans votre fichier ~/.vimrc
. Ils coupent/copient le texte en mode visuel dans le presse-papier du système d'exploitation.
vmap <C-x> :!pbcopy<CR>
vmap <C-c> :w !pbcopy<CR><CR>
double astérisque ("*) avant toute commande yank, les résultats sont transférés dans le tampon de copie. Cela fonctionne aussi pour Windows et Linux.
Sur macos 10.8, vim est compilé avec -clipboard
. Par conséquent, pour utiliser "*y
, vous devez disposer de Recompile. Heureusement, brew install vim
compilerait facilement une nouvelle version pour vous Et ce serait +clipboard
.
Sélectionnez visuellement le texte et tapez:
ggVG
!tee >(pbcopy)
Que je trouve mieux que:
ggVG
:w !pbcopy
Comme il ne clignote pas, une invite: "Appuyez sur ENTRÉE ou tapez commande pour continuer"
Si vous utilisez MacPorts, vous pouvez mettre à niveau votre VIM pour inclure la prise en charge du presse-papiers via:
port installer vim + x + x11
Maintenant, vous utilisez le registre "+" pour transférer votre texte directement dans le presse-papier de votre Mac. Fonctionne comme un charme.
Si vous êtes sur MacOS X:
$ brew install vim
$ vim --version
VIM - Vi IMproved 7.4 [...]
Ensuite, ajoutez à votre fichier .vimrc:
set clipboard=unnamed
Maintenant, il vous suffit d’être dans vim et :%y
pour que tout le contenu soit copié dans votre presse-papiers.
Je viens d'essayer le
map <C-x> :!pbcopy<CR>
vmap <C-c> :w !pbcopy<CR><CR>
Cela a très bien fonctionné.
Si votre vim n'est pas compilé avec les presse-papiers, si vous souhaitez copier du texte sélectionné au lieu de lignes entières, vous ne souhaitez pas installer macvim ou autre interface graphique, la solution la plus simple consiste à ajouter cette ligne à votre fichier .vimrc:
map <C-c> y:e ~/clipsongzboard<CR>P:w !pbcopy<CR><CR>:bdelete!<CR>
Pour l'utiliser, sélectionnez simplement le texte que vous souhaitez copier, puis Contrôle-C. Si vous voulez une explication complète de cette ligne, lire ici
Utilisez Homebrew's vim: brew install vim
Mac (à partir de 10.10.3 Yosemite) est livré pré-installé avec un vim système qui ne pas a le drapeau clipboard
activé.
Vous pouvez soit compiler vim et activer ce drapeau, soit simplement utiliser le vim de Homebrew correctement configuré.
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 [email protected]
Normal version without GUI. Features included (+) or not (-):
... -clientserver -clipboard +cmdline_compl ...
Notez le -clipboard
Avec vim de homebrew 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 ...
Notez le +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 Ceci ramènera la sélection au tampon + c'est le presse-papier.
J'ai ajouté les cartes suivantes à mon vimrc et cela fonctionne bien.
vmap y "+ y Avec cela, je peux faire clé de direction suivre par y pour copier dans le presse-papiers en mode visuel
nmap p "+ p Avec cela je peux faire clé de direction suivre par p pour coller du presse-papiers en mode normal.
PD: Sur Ubuntu, j’ai dû installer vim-gtk pour obtenir l’option + du presse-papier.
command-C? Cela fonctionne au moins pour le vim lancé depuis Terminal.app pour le texte sélectionné avec la souris.
Fakeclip implémente les tampons + et * s'ils ne sont pas supportés de manière native.
Mon problème principal était la version osx par défaut de VIM. L'installation via homebrew a ajouté +clipboard
à la construction.
vérifier avec
vim --version
si elle indique -clipboard
ou +clipboard
Vous pouvez utiliser MacVim lorsque vous êtes sur un Mac pour accéder facilement au Presse-papiers à l'aide des touches de système d'exploitation standard.
Il est également totalement compatible avec Vim normal, donc je n’ai même pas besoin d’un .vimrc
séparé.
Ce qui a fonctionné pour moi dans mon .vimrc
set clipboard=unnamed
if has("unnamedplus") " X11 support
set clipboard+=unnamedplus
endif
Maj cmd c - Définir le mode de copie Glissez la souris, sélectionnez le texte, cmd c pour copier le texte sélectionné Cmd v à coller
sur mac quand quelque chose d’autre semble fonctionner - sélectionnez avec la souris, faites un clic droit et choisissez Copier. uff
Pour Mac - Tenir la clé option
suivie de ctrl V
tout en sélectionnant le texte a fait l'affaire.
Je suis actuellement sous OS X 10.9 et mes efforts pour compiler vim avec + xterm_clipboard ne m'ont apporté rien. Ma solution actuelle consiste donc à utiliser MacVim en mode terminal avec l'option set clipboard=unnamed
dans mon fichier ~/.vimrc. Fonctionne parfaitement pour moi.
Je rencontre le même problème, après l'installation macvim
ne fonctionne toujours pas, j'ai finalement trouvé un moyen de résoudre:
Essayez de désinstaller tout d'abord vim,
brew uninstall macvim
brew uninstall --force vim
et réinstallez macvim
brew install macvim --with-override-system-vim
Ensuite, vous pouvez utiliser "*y
ou "+y
, pas besoin de set clipboard=unnamed
Pour les utilisateurs Ubuntu, le paquet que vous voulez récupérer pour utiliser le presse-papiers est vim-full. Les autres packages (vim-tiny, vim) n'incluent pas la fonctionnalité presse-papier.