選択した行をvimでクリップボードにコピーする方法


85

選択した行をvimのクリップボードにコピーする方法。すべてのテキストファイルに対してそれを行う方法を知っていますが、選択した行に対して行いたいと思います。ありがとう!



回答:


105

SHIFTV選択行モードになります。次に"*y、現在選択されている行を*クリップボードであるレジスタにヤンクします。さまざまな目的のために、かなりの数の異なるレジスタがあります。上のセクションを参照してくださいselection and drop registersとの違いの詳細については、*および+WindowsとLinux上で登録を。


10
Linuxでは、+はグローバルクリップボード、*は選択クリップボードですが、Windowsでは両方ともグローバルクリップボードにマップされます。
モーニッシュ2017

74

Linuxを使用していて、VImバージョン7.3.74以降を使用している場合(Ubuntu 11.10以降にインストールされるバージョンはこれを満たします)、次のことができます。

set clipboard=unnamedplus

これにより、ヤンクされたテキストがグローバルクリップボードに配置され、特別なレジスタを使用せずにグローバルクリップボードから貼り付けることができます。ldigasのソリューションとは異なり、これはGUI以外のバージョンのVImでも機能します。


8
これは、のvim-gnome代わりにパッケージをインストールした場合にのみ機能しますvim
dan-klasson 2012年

4
@ dan-klasson:このオプションには、クリップボードをサポートしてコンパイルされたvimが必要です。と入力すると、これが当てはまるかどうかを確認できますvim --version | grep "+xterm_clipboard"
BenC 2013年

これは他の非vimプログラムにコピーするように見えますが、vimで挿入モードに入り、「shift + insert」を使用してクリップボードから貼り付けると、最初の2行だけが貼り付けられます... vim-gnomeをインストールしました; 私は何か他のものが欠けていますか?
t2k32316 2014年

1
あなたはMacOSのにしている場合は、おそらく使用する必要がありますclipboard=unnamed代わりに(vim.wikia.com/wiki/Accessing_the_system_clipboard
streof

13
set guioptions+=a

ええと、要するに、何かを選択/ヤンクするたびに、それをクリップボードにも入れます(Vimではなく、ウィンドウシステムのグローバルキーボード)。そうすれば、特殊レジスターに物事をヤンクすることを考える必要はありません。


2
//、このアドバイスはどのオペレーティングシステムやバージョンのVimに適用されますか?
Nathan Basanese 2017年

10

GVIMの場合、を押しvてビジュアルモードに入ります。テキストを選択してヒットCtrl+Insertを押して選択範囲をグローバルクリップボードにコピーします。

メニューから、ショートカットキーが"+yShiftキーを押したまま、次にを押し"、次に+Shiftを放してを押していることがわかりますy(Shift + Insertと比較して面倒です)。


この答えが人気がないのはなぜですか?:(
Ankit Shubham 2018年

6

MAC OSXでvimを使用している場合、残念ながら古いバージョンが付属しており、クリップボードのオプションに準拠していません。幸いなことに、自作はこの問題を簡単に解決できます。

vimをインストールします:

brew install vim --with-lua --with-override-system-vim

vimのGUIバージョンをインストールします。

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

ターミナルを再起動して有効にします。

〜/ .vimrcに次の行を追加します

set clipboard=unnamed

これで、vimで行をコピーして、yy システム全体に貼り付けることができます。


//、OSX 10.12.3でこれをテストしたところ、ここで推奨されているように、最新のVimとlatetsGUIバージョンのVimの両方をインストールした後は正しく機能しました。ありがとう、@ anonymous。
Nathan Basanese 2017年

4

まだインストールしていない場合は、「xclip」をインストールしてください...

sudo apt-get install xclip

Xclipは、「ctrl + v」ではなく、中クリックして貼り付ける「選択/強調表示」クリップボードにデータを配置します。

vimでexコマンドを使用します:

7w !xclip

または

1,7w !xclip

または

%w !xclip

次に、中クリックして他のアプリケーションに貼り付けます...


4

vimがクリップボードをサポートしてコンパイルされている場合は、次の"*y意味を使用できます。視覚的に選択されたテキストをレジスタにヤンクします*(「*」はクリップボード用です)

クリップボードがサポートされていない場合はCtrl+Insert、vimでテキストを視覚的に選択してから使用する以外に方法はないと思います。


3

次の行を追加しました .vimrc

vnoremap <F5> "+y<CR>

これにより、を押して、選択したテキストをクリップボードにコピーできますF5。これを機能させるには、ビジュアルモードである必要があります。


1
~/.vimrcありがとうに追加、これははるかに優れています。
jaggedsoft

2

次のコードをに追加します.vimrc

if has('clipboard')
    if has('unnamedplus')  " When possible use + register for copy-paste
        set clipboard=unnamed,unnamedplus
    else         " On mac and Windows, use * register for copy-paste
        set clipboard=unnamed
    endif
endif
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.