set mouse=a
を有効にすると、Vimの内部にコピーされたテキストはVimの外部に貼り付けられません。誰もこれを修正する方法を知っていますか?
ここで、マウスでテキストを選択すると、ビジュアルモードがオンになり、ポップアップメニューのCopy
オプションが無効になります。
押す shift マウスで選択しながら。これにより、マウス選択がmouse=a
が有効になっていないかのように動作します。
注:このトリックは「ミドルボタンの貼り付け」にも適用されます。外部で選択されたvimテキストに貼り付ける場合は、 shift 中央のボタンをクリックします。挿入モードが有効になっていることを確認してください(予期しない影響を避けるために、:set paste
を使用することもできます)。
OS X(mac):alt/optionを押しながら選択( source )
つかいます "+y。とにかく端末のコピーコマンドを使用しないでください。実際のコンテンツの代わりに端末が表示するものをコピーするからです。
次のようにマッピングできます。
:vmap <C-C> "+y
そして、マウスで何かを強調表示し、押します Control-C コピーします。
この機能は、Vimが+xterm_clipboard
オプション付きでコンパイルされている場合にのみ機能します。 vim --version
を実行して、存在するかどうかを確認します。
set mouse=a
の代わりに.vimrcでset mouse=r
を使用します
OSXでの使用 fn の代わりに shift。
Ubuntuでは、Shiftキーを使用してハイライトされたテキストで、X-Termのコピーと貼り付けをVIM(Ctrl-Shift-CおよびCtrl-Shift-V)内で使用できます。
OSX-Macのもう1つのオプションは、View->Allow Mouse Reporting
のチェックを外すことです(または⌘-Rを押して切り替えます)。これにより、マウスの操作とマウスの選択を切り替えることができます。そのために修飾キーを保持する必要はありません。
私は通常、行番号を有効にしているので、複数の行を選択すると、行番号もコピーされます。行番号なしで複数の行をコピーする場合は、:set nonu
を使用して番号を無効にし、コピーが完了したら:set nu
を使用して再度有効にすることができます。
Vimコマンドラインで:set mouse&
を使用して、マウスを使用して選択したテキストのコピー/貼り付けを有効にできます。その後、マウスの中ボタンを使用するか、 shiftinsert 貼り付けます。
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では、"*
ではなく"+
が必要な場合があります
PuTTYセッションを使用している場合、選択範囲が自動的にコピーされます。 vimで「set mouse = a」オプションを使用した場合、Shift +マウスドラッグを使用して選択すると、テキストが自動的に選択されます。 X-termで確認する必要があります。
em ...押し続けます Shift 次に、マウスの右ボタンをクリックします
質問を読み直し、OPがそもそもスイッチをオフにしたくないことがわかったときに、誤ってset mouse=a
をオフにする方法を説明しました。とにかく中央でマウス(set mouse=
)をオフにする方法を探している人のために、ここに私の答えへの参照を残します: https://unix.stackexchange.com/a/506723/194822