ファイルを編集するためにvimを実行するssh経由でサーバーにアクセスします。y または "+y を使用して、Mac (ライオン) のローカル エディターに vim からテキストをヤンクしようとすると、機能しません。最後にローカルにコピーしたテキストになってしまいます。 p を使用するだけで機能します大丈夫です。
15 に答える
レイの答えを拡張するには…</p>
SSH 経由でリモート サーバー上でVim を使用している場合、Vim で行うことはすべてリモート サーバー上で行われます。リモート サーバーとその上で実行しているリモート Vim には、ローカル コンピューターとそのシステム クリップボードに関する実際的な知識はありません。
そのためy
、ヤンクされたテキストがローカルのクリップボードに置かれることはありません。
テキストのチャンクをリモート Vimからローカル マシンのクリップボードにコピーするには、次の 3 つのオプションがあります。
マウスでテキストを選択し、Mac OS X アプリケーションのようにCmd+を押します。C
明らかに、これが最も簡単に思えますが、少なくとも 3 つの制限があります。
現在の画面に限定されます。ヤンクしたいテキストが完全に表示されていない場合、すべてをコピーすることはできません。
とはうまく遊びません
set mouse=a
。このオプションを使用すると、マウスで何かを選択しようとすると、+でコピーできないビジュアルモードが選択されます。回避策として、ビジュアルモードに入らずに +mouse を使用してテキストを選択するか、単にリモコンからこの設定を削除してください。CmdCAlt~/.vimrc
行番号もコピーされます。
ヤンクされたテキストを一時ファイルに入れ、
scp
それをローカル マシンpbcopy
に置き、それを使用してシステムのクリップボードに入れます。この解決策は少し複雑に見えますが、機能します (問題自体も少し複雑です)。何年にもわたって、単純なワンライナーからクライアント/サーバーのセットアップまで、さまざまな実装を見てきました。これがその1つです。他の人については、自由にグーグルで検索してください。
X 転送を使用して、ローカル クリップボードをリモート クリップボードに接続します (可能な場合)。
この問題がありました-SSH経由でOSXからLinuxボックスにログインし、vimで開いたファイルからテキストをコピーできません。
私の回避策は:set mouse=i
デフォルトでは、マウスはすべてのモードで有効になっています。挿入モードでのみ有効に設定すると、編集していないとき (通常モード) にスクロールしてコピーできますが、編集を開始して (I キーまたは Insert キーを押して) 挿入モードに入ると、マウスがカーソル配置として機能します。ターミナルからコピーすることはできません。
~/.vimrc でそのオプションを設定できます
設定できる値とモードの詳細については、:help mouse を参照してください。
私の頼りになる解決策は、scp経由でローカルマシンからvimでファイルを編集することです。
:e scp://remoteuser@server.tld//path/to/document
これにより、バッファーがローカルに保持され、ローカルのクリップボードに簡単にコピーできるようになります。
もう 1 つの利点は、ローカルの vim セットアップ (.vimrc 設定、プラグインなど) を使用できることです。
sshvi
したターミナルでヤンクすると、Mac のクリップボードではなく、リモート マシンの vi の内部バッファに行がコピーされます。
マウスを使用します。:)
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
*
https://github.com/ojroques/vim-oscyank + iTerm2 + tmux 私の場合、これは私のワークフローです:
- リモートホストにsshします
- 新しい tmux セッションを開く
- ドキュメントが言うように、 https://github.com/ojroques/vim-oscyankが既にインストールおよび構成されているvim(またはneovim)を開きます
私の .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
他のクリップボード レジスタを試してください - "*y
。