PuTTYマニュアル](http://the.earth.li/~sgtatham/putty/0.52/htmldoc/Chapter3.html#3.1.1)より:
PuTTYのコピー&ペーストは、すべてマウスで動作します。テキストをクリップボードにコピーするには、ターミナルウィンドウでマウスの左ボタンをクリックし、ドラッグしてテキストを選択するだけです。ボタンを離すと、テキストは自動的にクリップボードにコピーされます。実際、Ctrl-Cを押すと、PuTTYはCtrl-Cの文字をサーバーに送信し、プロセスが中断される原因となります。
私が知っている限りでは、マウスを使わずにパテウィンドウから Windows のクリップボードに選択した領域をコピーする方法はありません。 html ](http://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/keyboard-copy.html)
キーボードショートカットでパテウインドウからWindowsのクリップボードに情報をコピーする唯一の方法は、システムメニューの “Copy all to clipboard"(alt-spaceから呼び出すことができます。
もしターミナルウィンドウ内だけでコピー&ペーストする必要がある場合は、使用しているシェルの man ページを参照するか、または unix の "screen” アプリ (詳細は ‘man screen’ を参照してください) の使用を検討してください。
この問題を回避するには、ConEmuやSuperPuttyのようなWindowsコンソールの置き換えでPuTTYを実行します。
私は GNU screen を使っています。
私の screenrc には vim でうまく遊ぶためにこれも入っています:
register [ "&00133:se paste&00115a"
register ] "&00133:se nopaste&00115a&00133"
bind ^] paste [.]
私の友人は screen にフックを持っていて、"screen clipboard" を x クリップボード (selections or clipboard) の一方または両方にコピーすることができます。
おそらく xclip と同じことができるでしょう、あなたが探している呪文は xclip -selection clipboard
私は xclip -selection clipboard -o
がクリップボードの内容を吐き出すかどうかを確認するためにすぐにテストしたいと思います。
これは解決策というよりは、回避策と言えるかもしれません。
vim の中で、ビジュアルモードで選択したブロック(通常は何ページにもわたるブロック)をコピーしたい場合、ファイルに書き込むことができます(テキストが選択されていて、ビジュアルモードのままの状態で :w filename.txt
と入力します)。それが終われば、以下のことができます:
個人的にはオプション1の方が好きです。
もう一つのちょっとした提案は、Windows内でマウスキーを有効にすることです。Windows 7では、それはアクセスセンターのイージーの下にあります。マウスを使いやすくする」をクリックします。マウスキーをオンにする」というチェックボックスにチェックを入れます。追加設定は「マウスキーの設定」をクリックしてください。
デフォルトのマウスキーのホットキーはAlt + Shift + NumLockです。
うまくいけばこのキーの組み合わせを叩いてもセッションに支障はありません(またはAlt + Tab outして外部のパテからアクティベートするだけ)。私はnumpadで0を押すとクリックロックが始まり、ハイライト/コピーしたいテキストの部分の上をドラッグできるようになると信じています。
これをしばらくやってみたのですが、Putty自体はクリップボードだけではコピーさせてくれません。
しかし、Puttyはリモート側からのデータの逆転送を容易にすることができます。VimやTmuxのようなツールを使ってキーボードベースのテキスト選択をしている場合、出力をファイルにダンプして、(自分とのデートはここで) netcatからputtyの逆ポートトンネルを使って、ローカルのクリップボードに入力をダンプするローカルサービスに送信することができます。 https://www.youtube.com/watch?v=RI79eeCuyvE , but here’s the short version:
Set your putty > connection > SSH > tunnels to forward R11311 to localhost:1234 Windows 10 clip commandに出力をパイプするリスニングサーバとしてnetcatを使用して、Windowsクリップボードに入力を送信します。これを次のように永遠のforループでラップします:
for /L %N IN () do nc -lp 1234 | clip
上記を管理者として実行するコマンドプロンプトで実行してください。
tmux save-buffer ~/.clipboard
または、ファイルにバッファ(この場合は、z)を保存するためにVimを使用することができます。 クリップボードファイルを使用して、vim関数 gist を使用して仲介として統合します。
あなたのテキスト選択がファイル内にあると、ポートフォワードのリモート側に出力をパイプすることができます:
silent! redir! > ~/.clipboard
silent! echo @z
silent! redir END
またはvimスクリプトの内部
cat ~/.clipboard | nc 127.0.0.1 11311
アンパサンドが必要であることに注意してください。もしかしたらできるかもしれません。これが機能していないと、閉じる前に完全に1秒待ってしまい、作業の流れを崩してしまうことがあります。アンパサンドを使うと即座に処理を放棄し、バックグラウンドでは1秒で完了します。
上記のことをすべて行うと、マウスに触れることなく、Tmux、Vim、ローカルパテクライアントのクリップボードを完全に統合することができます! これは私が見つけた唯一の方法でした。
あなたがWindowsマシン上にある場合、それは正常に動作しますが、場合にはLinuxベースのマシンでは、それはいつか動作しません。それが動作するようにするには、任意のテキストエディタでコンテンツをコピーして、ちょうどあなたがそれを貼り付けたい行でShift +挿入キーを使用しています。