選択範囲をOS Xクリップボードにコピーする方法


225

Vimで選択したエリアがあります。OS Xクリップボードにコピーするにはどうすればよいですか?

(OS Xクリップボードは、パイプを介してに書き込むことができます/usr/bin/pbcopy


4
ただ視覚的に選択してから"+y
zx1986

2
OSXに同梱されているvimには、またはがありません。これはで確認できます。これはで解決できます。+clipboard+xterm-clipboardvim --version | grep clipboardbrew install vim --with-client-server
LondonRob 2018

1
またはによってあなたにシンボリックリンクできるコマンドライン版の提供していますMacVim、使用~/binして、~/bin先に通常のシステムにインストールさVIMと同義語のあなたのパスに挿入することができます。
Tin Man

@ zx1986が書いたものに基づいて、3つのことを行いました:1)vi / vimをMacVimのターミナルモードにエイリアスするために〜/ .bashrcにalias vi='mvim -v'以下を追加しました: 2)Ctrl +をマップする〜/ .vimrcに以下を追加しましたc(Cmd + cではない): vnoremap <C-c> "+y3)^c端末で実行しているときにキーシーケンス(Ctrl + C)を入力するように設定されたキーボードマエストロ(私の場合はiTerm2)これにより、Cmd + cを使用してOSXクリップボードにテキストをコピーできます。他のOSXアプリケーションに貼り付けることができるようにします。
Neil Griffin

回答:


79

使用しているVimのバージョンに応じて、+レジスターを使用してクリップボードにアクセスできます。

Mac OS Xクリップボード共有」には、あなたに役立つアイデアがいくつかあります。


5
+ clipboardなしでコンパイルされたVIMを持つ人々にとって、上記のリンクはVIMを再コンパイルせずに回避策を提供する優れたリソースです
sdjuan

非常に重要な詳細!!! Vimバージョン7.3を使用している場合、これは機能しない可能性がありますが、Vimバージョン7.4を使用している場合は、機能します(場合によっては、「+ y」全体を実行する必要がないこともあります。ターミナルで> vimと書いて、バージョン番号を起動すると
Zeth


1
"+OS XがWindowsシステムとしてX11を使用していない一方で、(あなたは、+ X11をサポートしてvimの構築OS XでX11サーバXQuartzをインストールする場合を除き)レジスタはX11のために存在します。
nn0p 2016年

- vimmacvim+ clipboardの両方がある場合の対処方法。にclipboard=unnamed追加されました~/.vimrcか?本当の痛みのように見え、すべての回避策を試して、現在はスペースマックを使用する必要があります。知っているときは、グローバルクリップボードを使用する必要があります:)
Nikolay Fominyh

240

MacVimおよびWindows gvimを、単にあなたに、以下を追加します~/.vimrc

set clipboard=unnamed

今のようなすべての操作yyDおよびPクリップボードとの作品。"*またはでプレフィックスを付ける必要はありません"+


2
私は、MacVimがあなたのために有効にする⌘-Cと⌘-Vからy、d、およびPコマンドを分離する方法を理解するために、午前中ずっと過ごしてきました。案の定、私がvimの少年時代にvimrcにこれを追加していて、それ以来私は苛立ちました。
Jonathan Dumaine 2013年

2
MacVimを初めて使用する場合は、-vフラグ(mvim -v)を使用してターミナルから使用できます。私はvimとmvimにエイリアスされています。
pk-nb 2013

3
上記の彼のコメントに@VincentGで述べたように、これは実際にはVimの端末ベースのバージョンで動作しますが、端末内tmuxのを使用したものがここで詳述ソリューションのいずれかを実行する必要があります:stackoverflow.com/a/11421329/456584
user456584

3
限りとして-これが受け入れ答えなければなりません:echo has("clipboard")と言う1MacVimのためのケースである、と私はvi走るエイリアスmvim -vの代わりに
jdsumsion

1
@Joseph、場合:versionを示しますが-clipboard、その後のVimのビルドは、クリップボード機能をサポートしていません。GUIアプリであるMacVimについて話していました。
George V. Reilly 2015年

136

クリップボードが有効になっている場合は、次のキーを押して、選択した領域をクリップボードにコピーできます "*y

有効になっているかどうかを確認するには、実行vim --versionして+clipboardまたはを探します-clipboard。たとえば、10.5.6ボックスではデフォルトで有効になっていません。

%vim
/ usr / bin / vim
%vim --version
VIM-Vi IMproved 7.2(2008年8月9日、2008年11月11日コンパイル17:20:43)
含まれるパッチ:1-22
_www@b77.apple.comによりコンパイル
GUIなしの通常バージョン。  含まれる機能(+)または含まない(-):
... 
-clientserver -clipboard + cmdline_compl + cmdline_hist + cmdline_info + comments
 ...

でコンパイルされていれば+clipboard"*レジスターを使用してシステムのクリップボードにアクセスできます。

7.2のソースをダウンロードしてコンパイルし(簡単にtar xjf vim-7.2.tar.bz && cd vim72 && ./configure && make && sudo make install)、クリップボードを有効にしました。

%vim
/ usr / local / bin / vim
%vim --version
VIM-Vi IMproved 7.2(2008年8月9日、2009年3月24日コンパイル17:31:52)
rampion@Myrrhy.localによりコンパイル
GTK2 GUIを備えた通常バージョン。  含まれる機能(+)または含まない(-):
... 
+ clientserver + clipboard + cmdline_compl + cmdline_hist + cmdline_info + comments
 ...

ただし、コンパイルした後でも、X11.appでのみ、Terminal.appでvimを実行すると、クリップボードにコピーできませんでした。


3
+ clipboardを使用して最新バージョンをコンパイルしましたが、ネイティブクリップボードが*レジスタとして機能します。また、.vimrcファイルで「set clipboard = unnamed」を設定すると、システムクリップボードが一般的なものになります。私は実際にgithub.com/adamv/homebrew/blob/duplicates/Library/Formula/…を使用して、 この自作の式をビルドおよびコンパイルしました。
rado

うーん、なぜVimがHomebrewに表示されなかったのかわかりませんが、/ usr / local / Library / Formulaにコピーし、brew install vimを実行すると、「ld:-lruby-staticのライブラリが見つかりません」で失敗しました」私はRVMを使用していて、1.8.7を使用していました。1.9.2に切り替えると、エラーは「ld:-lruby.1.9.1のライブラリが見つかりません」でした。解決策は、最初にrvm use systemを実行してシステムRubyを使用することでした。
11年

9
通常は機能の長いリストである「クリップボード」という単語を検索するよりも少し簡単です:echo has("clipboard")。0を示している場合はコンパイルされていません。1を示している場合はコンパイルされています。
ravron 2013

3
あなたも自作を使用して、クリップボードを使用してコンパイルVimを得ることができます: brew install vim
アントンコバル」

4
注意してください!私は+clipboardバージョンを持ってい--with-client-serverますが+x11、それを有効にするインストール済みで、macOSのターミナルvimでx11にコピー/貼り付けしようとしても機能しませんでした:)なしで再インストールする必要がありました+clientserver
jacwah

96

テキストを視覚的に選択して入力できます :w !pbcopy<CR>

または、以下のキーマッピングを~/.vimrcファイルに含めることができます。テキストをビジュアルモードでオペレーティングシステムのクリップボードにカット/コピーします。

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

ソース:http : //drydevelopment.com/blog/vim-pbcopy-on-os-x


6
:1,10w!pbcopyなどのコマンドラインからテキストを選択して、1〜10行目をクリップボードにコピーすることもできます。wは、元のテキストを維持するために、その後ろのスペースとともに重要です。上記のソースリンクは現在壊れていますが、ここで議論があります:vim.wikia.com/wiki/Mac_OS_X_clipboard_sharing
sdjuan

私はtmuxの中で、この作業を取得するために、これを続く:superuser.com/questions/231130/...
WEX

@Wexリンクが修正されました
SnoringFrog 2015

2
これは行全体を選択する場合にのみ機能するようです。行の一部だけを選択したい場合は機能しないようです。stackoverflow.com/questions/16196826/...
ケビン・ウィーラー

1
@Kevin Wheeler:次のコマンドを試して、行単位ではないコピーnoremap <silent> <leader> y:<CR>:let @ a = @ "を解決できます。\ | execute" normal!vgvy "\ | let res = system(" pbcopy "、@")を許可します\ | let @ "= @ a <CR>
dragonxlwang 2016年

38

"*yankコマンドがコピーバッファに結果をヤンクする前に、アスタリスク()を二重引用符で囲みます。これはWindowsとLinuxでも機能します。


11
ちょうど私のためにベル文字なしその他の効果を発するように見える
ʞɔıu

3
X11では、Vimの「*はPRIMARY」、「+はCLIPBOARD」で、SECONDARYは名前付きレジスタを取得しません。(誰もそれを使用しているわけではない...)
ephemient

完璧に。特にブロック選択(ctrl-v)で特に役立ちます。
Sonique、2015年

質問は特にMac OS Xに関するものだったので、Macで「あまりにも」機能することを追加する必要はありません。
Paul Tomblin、2015

@PaulTomblin大丈夫、十分公正:-)
apprenticeDev

26

macos 10.8では、vimはでコンパイルされている-clipboardので、使用"*yするには再コンパイルする必要があります。幸いにもbrew install vim、新しいバージョンを簡単にコンパイルできます+clipboard


1
心に留めておくべきこと-非常に奇妙にbrew install vim、更新viあり、なし vim。したがって、homebrewでvimをインストールした後で、別名を付ける必要がある場合があります。
shridharama

18

テキストを視覚的に選択して入力します。

ggVG
!tee >(pbcopy)

私はこれよりも良いと思います:

ggVG
:w !pbcopy

プロンプトが表示されないので、「Enterキーを押すか、コマンドを入力して続行してください」




11

MacPortsを使用している場合は、VIMをアップグレードして、クリップボードサポートを含めることができます。

port install vim +x +x11

次に、"+レジスターを使用して、テキストをMacクリップボードに直接ヤンクします。魅力のように機能します。


1
これはまさに私が必要としたものです。$ PATHが正しく、Apple vimではなく/ opt / local / bin / vimを取得していることを確認する必要があります。
Gareth

8

MacOS Xを使用している場合:

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

次に、.vimrcに追加します。

set clipboard=unnamed

すべてのコンテンツをクリップボードにコピーするには、vimで実行する必要があり:%yます。


コンテンツはヤンクされていますが、VIMの外に貼り付けることはできません。
prayagupd 2017

5

Homebrewの vimを使用します。brew install vim

Mac(10.10.3 Yosemite以降)には、フラグが有効になっていないシステムvimがプリインストールされていますclipboard

vimを自分でコンパイルしてそのフラグを有効にするか、適切に設定されているHomebrewのvimを使用するだけです。

これを自分で確認するには、在庫システムのvimをチェックしてください。 /usr/bin/vim --version

次のようなものが表示されます。

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

注意してください -clipboard

自作のvimでは代わりに

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

注意してください +clipboard


1
その後、どのようにコピーを作成しますか?
Frozen Flame

VIMの醸造のバージョンで私が欲しかったものを行うことができました:私は使用してライン強調しV、その後に:w !pbcopy、それが働いた
davidpm4

5

Vimがクリップボードでコンパイルされていない場合、行全体ではなく選択したテキストをコピーし、MacVimや他のGUIをインストールしたくない場合は、この行を.vimrcに追加するのが最も簡単な解決策です。

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

使用するには、コピーするテキストを視覚的に選択し、次にControl- を押しますC。この行の完全な説明が必要な場合は、「vimのクリップボードにコピーする方法」を読みください。


しかし、テキストがコピーされた後に2本の黒い線が表示されます
Nic Wanavit

4

私が使用した:

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

それは本当にうまくいきました。


3

MacVimを使用できますMacをしているときにを使用すると、標準のOSキーを使用してクリップボードに簡単にアクセスできます。

また、通常のVimと完全に下位互換性があるため、個別に用意する必要もありません.vimrc


MacVimを使用して~/binから、コマンドラインvimの同義語をmy にシンボリックリンクして、デフォルトを上書きしました。
Tin Man

2

コマンド-C?これは少なくとも、マウスで選択されたテキストのTerminal.app内から起動されたvimで機能します。


6
その結果、一つの端末の画面よりも長い場合、あなたはしているが、vimの中で上下に分割されたサブウィンドウを使用している場合(実際に私が考えている場合である)素朴な答えが、ブレイク出力に良い、または
ʞɔıu

3
あなたは正しい、私はこれらのケースを考えていませんでした。私は他の人が同様の役に立たない答えをするのを防ぐためだけに私の答えを残します。
mouviciel 2009年


2

私の主な問題は、VimのデフォルトのOSXバージョンでした。homebrew経由でのインストールが追加されました+clipboardビルドにれた。

以下で確認できます:

vim --version

それが言う-clipboardかどうかを確認します+clipboard


2

+clipboardVimインストールにオプションがあり(で確認できます:version)、ビジュアルモードで実行できる場合"+yこれは、選択範囲を+クリップボードであるバッファーにヤンクします。

以下のマップをvimrcに追加しましたが、正常に動作します。

vmap <leader>y "+y :これで私が行うことができますleader keyでのフォローをyビジュアルモードでクリップボードにコピーします。

nmap <leader>p "+p :これで私が行うことができますleader keyでのフォローをp通常モードで、クリップボードから貼り付けます。

PD:Ubuntuでは、+clipboardオプションを取得するためにvim-gtkをインストールする必要がありました。


0

Macで他の何かが機能しているように見える場合-マウスで選択し、右クリックしてコピーを選択します。uff


0

私は現在OS X 10.9を使用していますが、+ xterm_clipboardを使用してvimをコンパイルしようとしても何も起こりませんでした。したがって、私の現在の解決策は、〜/ .vimrcファイルにオプションを付けてターミナルモードMacVimを使用することset clipboard=unnamedです。私にぴったりの作品。


0

私にとって何がうまくいったか .vimrc

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

0

Macの場合- optionキーを押したctrl Vまま、テキストを選択することでうまくいきました。


0

Shift cmd c –コピーモードの設定マウスをドラッグしてテキストを選択、cmd cで選択したテキストをコピーCmd vで貼り付け


-1

Ubuntuユーザーの場合、クリップボードを使用するために取得するパッケージはvim-fullです。他のパッケージ(vim-tiny、vim)には、クリップボード機能は含まれていません。


vim-fullは、ubuntuパッケージ名ではなくなりました。デフォルトのvimパッケージ(7.3.154)には、-clipboardなどの最小限の機能セットがあります。+ vim-gtkまたはvim-noxをインストールすると、+ clipboardバージョンが提供されます。
spazm

-1

レジスタ '+'または '*'を使用してクリップボードにコピーできませんか?

理由:特定のバージョンのvimがクリップボードサポートなしでコンパイルされました。コンソールでvim --verionと入力すると、-xterm_clipboardが表示されます。。guiパッケージでvimをインストールすると、この問題が解決します。ubuntuでは、シェルで次のように入力してこれを行うことができます。

sudo apt-get install vim-gui-common

ここで再びコンソールでvim --versionを実行します。おそらく、今は+ xterm_clipboardが表示されます。

したがって、レジスタ+を使用してすべてをクリップボードにコピーできます(現在の行をクリップボードにコピーするには「+ yy」のように)


-1

インストール後に同じ問題が発生します macvimまだ機能しないので、最終的に解決する方法を見つけました:

最初にすべてのvimをアンインストールしてみてください、

brew uninstall macvim

brew uninstall --force vim

そしてmacvimを再インストールします

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

次に、"*yまたはを使用できます。"+yset clipboard=unnamed


-2

Command-cはMacVimでもターミナルでも動作します。


従来のコピーと貼り付けはVimバッファーでは機能せず、フォーマットを完全に混乱させる可能性があります。たとえば、Cmd + Cで15行のネストされたオブジェクトをコピーしてからCmd + Vで貼り付けると、ネストされたオブジェクトが理解できなくなります。これは.vimrcの設定に依存する可能性が高く、非常に特殊な場合があります
netpoetica '7/07/14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.