it-swarm.com.de

Vim: Auswahl in OS X-Zwischenablage kopieren

Angenommen, Sie haben einen Bereich in vim ausgewählt. Wie kann man es in die OS X-Zwischenablage kopieren?

(Hinweis: In die OS X-Zwischenablage kann über Pipe nach /usr/bin/pbcopy geschrieben werden.)

215
ʞɔıu

Je nachdem, welche Version von vim ich verwende, kann ich mit dem + -Register auf die Zwischenablage zugreifen.

http://vim.wikia.com/wiki/Mac_OS_X_clipboard_sharing kann einige Ideen haben, die auch für Sie funktionieren.

75
Chris AtLee

Für MacVim und Windows Gvim fügen Sie Ihrem ~/.vimrc einfach Folgendes hinzu:

set clipboard=unnamed

Jetzt funktionieren alle Operationen wie yy, D und P mit der Zwischenablage. Sie müssen nicht mit "* oder "+ vorangestellt werden.

229

Wenn die Zwischenablage aktiviert ist, können Sie einen ausgewählten Bereich in die Zwischenablage kopieren, indem Sie "*y drücken.

Um zu sehen, ob es aktiviert ist, suchen Sie in einer vim --version nach +clipboard oder -clipboard. Beispielsweise ist es in meinem 10.5.6-Feld nicht standardmäßig aktiviert:

% which vim
/usr/bin/vim
% vim --version 
 VIM - Vi IMproved 7.2 (2008 Aug 9, erstellt am 11.11.2008 17:20:43) 
 Enthaltene Patches: 1 -22 
 Kompiliert von [email protected]
Normal Version ohne GUI. Features enthalten (+) oder nicht (-):...
-Kundenserver -Klemmbrett  + cmdline_compl + cmdline_hist + cmdline_info + Kommentare 
...

Wenn es mit +clipboard kompiliert worden wäre, kann ich mit dem Register "* auf die Systemzwischenablage zugreifen.

Ich habe die 7.2 source heruntergeladen und kompiliert (einfach als tar xjf vim-7.2.tar.bz && cd vim72 && ./configure && make && Sudo make install), und die Zwischenablage wurde aktiviert:

% which vim
/usr/local/bin/vim
% vim --version 
 VIM - Vi IMproved 7.2 (2008 Aug 9, erstellt am 24.03.2009 17:31:52) 
 Zusammengestellt von [email protected]
Normale Version mit GTK2-GUI. Features enthalten (+) oder nicht (-):...
 + clientserver + Zwischenablage  + cmdline_compl + cmdline_hist + cmdline_info + Kommentare 
...

Ich konnte jedoch selbst nach dem Kompilieren nicht in die Zwischenablage kopieren, wenn Sie vim in Terminal.app ausführen, nur in X11.app.

133
rampion

Sie können Text visuell auswählen und :w !pbcopy<CR> eingeben.

Oder Sie können die nachstehenden Tastenzuordnungen in Ihre ~/.vimrc-Datei einfügen. Sie schneiden/kopieren Text im visuellen Modus in die Zwischenablage des Betriebssystems.

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

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

92
user242065

sternchen in Anführungszeichen ("*), bevor ein yank-Befehl die Ergebnisse in den Kopierpuffer zieht. Das funktioniert auch für Windows und Linux.

36
Paul Tomblin

Auf Macos 10.8 wird vim mit -clipboard kompiliert. Um "*y verwenden zu können, müssen Sie Neu kompilieren. Zum Glück würde brew install vim leicht eine neue Version für Sie erstellen Und es wird +clipboard sein.

26
nikola

Text visuell auswählen und eingeben:

ggVG
!tee >(pbcopy)

Was finde ich schöner als:

ggVG
:w !pbcopy

Da eine Aufforderung nicht angezeigt wird: "Drücken Sie die EINGABETASTE oder geben Sie den Befehl ein, um fortzufahren"

17
James Scriven

Wenn Sie MacPorts verwenden, können Sie Ihr VIM auf die Unterstützung der Zwischenablage aktualisieren.

port install vim + x + x11

Jetzt verwenden Sie das "+ Register", um Ihren Text direkt in Ihre Mac-Zwischenablage zu ziehen. Funktioniert wie ein Zauber.

11
Matt Hughes

In meinem Fall musste ich nur tun:

:set mouse=v

bitte besuchen Sie die Originallösung auf superuser.com

9
Telmo Dias

Wenn Sie mit MacOS X arbeiten:

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

Dann fügen Sie zu Ihrem .vimrc hinzu:

set clipboard=unnamed

Jetzt müssen Sie nur noch in vim und :%y sein, damit der gesamte Inhalt in Ihre Zwischenablage kopiert wird.

7
Jose Alban

Ich habe es gerade ausprobiert

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

Es hat wirklich gut funktioniert. 

4
user3133576

Wenn Ihr vim nicht mit Zwischenablagen kompiliert ist, möchten Sie markierten Text anstelle von ganzen Zeilen kopieren. Sie möchten macvim oder eine andere GUI nicht installieren. Die einfachste Lösung ist, diese Zeile in Ihre .vimrc-Datei einzufügen:

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

Wählen Sie dazu einfach den Text aus, den Sie kopieren möchten, und wählen Sie dann Control-C aus. Wenn Sie eine vollständige Erklärung dieser Zeile wünschen, lesen Sie hier

4
songz

Verwenden Sie Homebrews vim: brew install vim

Mac (ab 10.10.3 Yosemite) wird mit einem System-vim vorinstalliert, das für not das Flag clipboard aktiviert hat.

Sie können vim entweder selbst kompilieren und dieses Flag aktivieren, oder Sie verwenden einfach das vim von Homebrew, das ordnungsgemäß eingerichtet ist.

Um dies selbst zu sehen, überprüfen Sie das Lagersystem vim mit /usr/bin/vim --version

Sie sehen etwas wie:

$ /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 ...

Beachten Sie den -clipboard

Mit Homebrews Vim bekommt man stattdessen

$ /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 ...

Beachten Sie den +clipboard

4
Evan

wenn Sie eine + Zwischenablage-Option in Ihrer VIM -Installation haben (Sie können dies mit: version überprüfen) und Sie sich im visuellen Modus befinden, können Sie "+ y tun. Dadurch wird die Auswahl in den Puffer gezogen + das ist die Zwischenablage.

Ich habe die folgenden Karten zu meinem vimrc hinzugefügt und es funktioniert gut. 

vmap y "+ y Damit kann ich die leader-Taste gefolgt von y ausführen, um sie im visuellen Modus in die Zwischenablage zu kopieren

nmap p "+ p Hiermit kann ich die leader-Taste gefolgt von p ausführen, um im Normalmodus aus der Zwischenablage einzufügen. 

PD: Unter Ubuntu musste ich vim-gtk installieren, um die + Zwischenablage-Option zu erhalten.

2
Andrés Hazard

befehl-C? Dies funktioniert zumindest für das in Terminal.app gestartete vim für mit der Maus ausgewählten Text.

2
mouviciel

Fakeclip implementiert die + und * Puffer, wenn sie nicht nativ unterstützt werden.

2
redacted

Mein Hauptproblem war die Standardversion von Osx von VIM. Bei der Installation über Homebrew wurde +clipboard zum Build hinzugefügt.

überprüfe mit

vim --version

wenn es -clipboard oder +clipboard sagt

2
frbl

Sie können MacVim verwenden, wenn Sie sich auf einem Mac befinden, um mit den Standardtasten des Betriebssystems problemlos auf die Zwischenablage zuzugreifen.

Es ist auch vollständig abwärtskompatibel mit normalem Vim, daher muss ich nicht einmal einen separaten .vimrc haben.

2
matpie

Was in meinem .vimrc für mich funktioniert hat

set clipboard=unnamed
if has("unnamedplus") " X11 support
    set clipboard+=unnamedplus
endif
0
maged

Umschalt cmd c - Kopiermodus einstellen Ziehen Sie die Maus, wählen Sie Text aus, cmd c, um den ausgewählten Text zu kopieren. Cmd v, um ihn einzufügen

0
user518066

auf dem mac, wenn alles andere zu funktionieren scheint - wählen Sie mit der Maus aus, klicken Sie mit der rechten Maustaste, und wählen Sie "Kopieren". uff

0
tom

Für Mac - Halten Sie die option-Taste gefolgt von ctrl V gedrückt, während Sie den Text auswählen.

0
markroxor

Ich bin derzeit auf OS X 10.9 und meine Bemühungen, vim mit + xterm_clipboard zu kompilieren, haben mir nichts gebracht. Daher ist meine derzeitige Lösung die Verwendung von MacVim im Terminalmodus mit der Option set clipboard=unnamed in meiner ~/.vimrc-Datei. Funktioniert perfekt für mich.

0

Ich treffe dasselbe Problem, nachdem macvim noch nicht installiert war, fand ich einen Weg zu lösen:

Versuchen Sie zuerst alle vim zu deinstallieren,

brew uninstall macvim

brew uninstall --force vim

und installieren Sie macvim neu

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

Dann können Sie "*y oder "+y verwenden, müssen nicht set clipboard=unnamed

0
Bruce

Für Ubuntu-Benutzer ist das Paket, das Sie zur Verwendung der Zwischenablage abrufen möchten, vim-full. Die anderen Pakete (vim-tiny, vim) enthalten die Zwischenablage nicht.

0
plowman