65

ファイルを編集するためにvimを実行するssh経由でサーバーにアクセスします。y または "+y を使用して、Mac (ライオン) のローカル エディターに vim からテキストをヤンクしようとすると、機能しません。最後にローカルにコピーしたテキストになってしまいます。 p を使用するだけで機能します大丈夫です。

4

15 に答える 15

75

レイの答えを拡張するには…</p>

SSH 経由でリモート サーバー上でVim を使用している場合、Vim で行うことはすべてリモート サーバー上で行われます。リモート サーバーその上で実行しているリモート Vim には、ローカル コンピューターとそのシステム クリップボードに関する実際的な知識はありません。

そのためy、ヤンクされたテキストがローカルのクリップボードに置かれることはありません。

テキストのチャンクをリモート Vimからローカル マシンのクリップボードコピーするには、次の 3 つのオプションがあります。

  • マウスでテキストを選択し、Mac OS X アプリケーションのようにCmd+を押します。C

    明らかに、これが最も簡単に思えますが、少なくとも 3 つの制限があります。

    1. 現在の画面に限定されます。ヤンクしたいテキストが完全に表示されていない場合、すべてをコピーすることはできません。

    2. とはうまく遊びませんset mouse=a。このオプションを使用すると、マウスで何かを選択しようとすると、+でコピーできないビジュアルモードが選択されます。回避策として、ビジュアルモードに入らずに +mouse を使用してテキストを選択するか、単にリモコンからこの設定を削除してください。CmdCAlt~/.vimrc

    3. 行番号もコピーされます。

  • ヤンクされたテキストを一時ファイルに入れ、scpそれをローカル マシンpbcopyに置き、それを使用してシステムのクリップボードに入れます。

    この解決策は少し複雑に見えますが、機能します (問題自体も少し複雑です)。何年にもわたって、単純なワンライナーからクライアント/サーバーのセットアップまで、さまざまな実装を見てきました。これがその1つです。他の人については、自由にグーグルで検索してください。

  • X 転送を使用して、ローカル クリップボードをリモート クリップボードに接続します (可能な場合)。

于 2012-05-22T13:26:46.810 に答える
24

この問題がありました-SSH経由でOSXからLinuxボックスにログインし、vimで開いたファイルからテキストをコピーできません。

私の回避策は:set mouse=i

デフォルトでは、マウスはすべてのモードで有効になっています。挿入モードでのみ有効に設定すると、編集していないとき (通常モード) にスクロールしてコピーできますが、編集を開始して (I キーまたは Insert キーを押して) 挿入モードに入ると、マウスがカーソル配置として機能します。ターミナルからコピーすることはできません。

~/.vimrc でそのオプションを設定できます

設定できる値とモードの詳細については、:help mouse を参照してください。

于 2017-02-24T08:31:02.860 に答える
22

私の頼りになる解決策は、scp経由でローカルマシンからvimでファイルを編集することです。

:e scp://remoteuser@server.tld//path/to/document

これにより、バッファーがローカルに保持され、ローカルのクリップボードに簡単にコピーできるようになります。

もう 1 つの利点は、ローカルの vim セットアップ (.vimrc 設定、プラグインなど) を使用できることです。

于 2013-03-25T18:45:57.733 に答える
4

sshviしたターミナルでヤンクすると、Mac のクリップボードではなく、リモート マシンの vi の内部バッファに行がコピーされます。

マウスを使用します。:)

于 2012-05-22T00:57:47.237 に答える
3

MacOS で、マシン A からマシン B に SSH 接続し、マシン B で vim を使用する場合、これを.vimrcマシン B の my に追加します。

nmap yr :call system("ssh $machineA_IP pbcopy", @*)<CR>

そうすれば、通常モードで * register に何かをコピーしてから と入力すると、 vim@machine_B の register の内容がマシン A のローカル クリップボードにコピーされますyr*+clipboard*

于 2019-03-21T09:05:56.740 に答える
1

https://github.com/ojroques/vim-oscyank + iTerm2 + tmux 私の場合、これは私のワークフローです:

私の .vimrc の一部

Plug 'ojroques/vim-oscyank'  " clipboard over ssh through tmux

" yank operation don't need to use the *" register (system clipboard)
set clipboard+=unnamedplus

autocmd TextYankPost * if v:event.operator is 'y' && v:event.regname is '' | OSCYankReg " | endif

于 2021-07-19T21:03:05.653 に答える
-3

他のクリップボード レジスタを試してください - "*y

于 2012-05-22T09:25:14.197 に答える