web-dev-qa-db-ja.com

set mouse = aを有効にしてVimの外部にテキストをコピーする

set mouse=aを有効にすると、Vimの内部にコピーされたテキストはVimの外部に貼り付けられません。誰もこれを修正する方法を知っていますか?

ここで、マウスでテキストを選択すると、ビジュアルモードがオンになり、ポップアップメニューのCopyオプションが無効になります。

enter image description here

208
lyuba

押す shift マウスで選択しながら。これにより、マウス選択がmouse=aが有効になっていないかのように動作します。

注:このトリックは「ミドルボタンの貼り付け」にも適用されます。外部で選択されたvimテキストに貼り付ける場合は、 shift 中央のボタンをクリックします。挿入モードが有効になっていることを確認してください(予期しない影響を避けるために、:set pasteを使用することもできます)。

OS X(mac):alt/optionを押しながら選択( source

389
François

つかいます "+y。とにかく端末のコピーコマンドを使用しないでください。実際のコンテンツの代わりに端末が表示するものをコピーするからです。

次のようにマッピングできます。

:vmap <C-C> "+y

そして、マウスで何かを強調表示し、押します Control-C コピーします。

この機能は、Vimが+xterm_clipboardオプション付きでコンパイルされている場合にのみ機能します。 vim --versionを実行して、存在するかどうかを確認します。

45
Josh Lee

set mouse=aの代わりに.vimrcでset mouse=rを使用します

17
Nefeline

OSXでの使用 fn の代わりに shift

13
ssasa

Ubuntuでは、Shiftキーを使用してハイライトされたテキストで、X-Termのコピーと貼り付けをVIM(Ctrl-Shift-CおよびCtrl-Shift-V)内で使用できます。

6
Marc Gibbons

OSX-Macのもう1つのオプションは、View->Allow Mouse Reportingのチェックを外すことです(または⌘-Rを押して切り替えます)。これにより、マウスの操作とマウスの選択を切り替えることができます。そのために修飾キーを保持する必要はありません。

行番号付きのマルチラインに関する注意:

私は通常、行番号を有効にしているので、複数の行を選択すると、行番号もコピーされます。行番号なしで複数の行をコピーする場合は、:set nonuを使用して番号を無効にし、コピーが完了したら:set nuを使用して再度有効にすることができます。

5
reor

Vimコマンドラインで:set mouse&を使用して、マウスを使用して選択したテキストのコピー/貼り付けを有効にできます。その後、マウスの中ボタンを使用するか、 shiftinsert 貼り付けます。

1
Madhu

Vimがコンパイルされたコンパイル設定は、問題の一部です。 vim --versionはこれらを示しています。

OSXでは、デフォルトのvimには-clipboardがありますが、+clipboardが必要です

Osxでは、一般的にmacvimを使用できます。 brew cask install macvimができます+clipboardがあります。

それらには2つのvimsがあります。

~$ ls -l /usr/bin/vim   <--- default vim
-rwxr-xr-x  1 root  wheel  1745984 15 Jul  2017 /usr/bin/vim

~$ ls -l /usr/local/bin/vim   <-- macvim, installed recently via that mentioned brew line. 
lrwxr-xr-x  1 Apple  admin  42 16 May 23:32 /usr/local/bin/vim -> /Applications/MacVim.app/Contents/bin/mvim
~$ 

vimを実行すると、macvim 'cos /usr/local/binはパスの/usr/binの前になければなりませんが、which vimで確認できます。

vim(macvimを実行する)を実行しても問題ありませんが、viをmacvim 'cosにマップすることをお勧めします。 lnを使用して(rmを使用して)書き換えまたは削除し、vi symリンクを再作成できます。そして、「操作が許可されていません」というエラーなしでそれを行うには、SILを(一時的に)無効にする必要があります。 https://Apple.stackexchange.com/questions/208478/how-do-i-disable-system- integrity-protection-sip-aka-rootless-on-macos-os-x

macvimには+clipboardで示されるvim --versionがあります

以下は、必要な行だけを含む~/.vim/vimrcの作業です。

:set mouse=a
:map <leader>c "+y
:map <leader>v "+p

デフォルトのリーダーキーはバックスラッシュです。

私はリーダーキーを使用するべきだという提案を読みました。(確かにコントロールはすでに使用されている多くのキーを持っているので、提案はコントロールを使用しないことでした。それがコマンドキーにも当てはまるかどうかはわかりませんが、とにかく)。

上記のマッピングでは、\c"+yを実行し、+と呼ばれるレジスタからクリップボードにコピーします。そして、\vは+として知られるレジスタから貼り付けられます。

これは、ウィンドウ間で機能するコピー/貼り付けです。

別のOSでは、"*ではなく"+が必要な場合があります

0
barlop

PuTTYセッションを使用している場合、選択範囲が自動的にコピーされます。 vimで「set mouse = a」オプションを使用した場合、Shift +マウスドラッグを使用して選択すると、テキストが自動的に選択されます。 X-termで確認する必要があります。

0
Amitesh Anand

em ...押し続けます Shift 次に、マウスの右ボタンをクリックします

0
levinit

質問を読み直し、OPがそもそもスイッチをオフにしたくないことがわかったときに、誤ってset mouse=aをオフにする方法を説明しました。とにかく中央でマウス(set mouse=)をオフにする方法を探している人のために、ここに私の答えへの参照を残します: https://unix.stackexchange.com/a/506723/194822

0
Holger Böhnke