web-dev-qa-db-ja.com

PuTTYで実行されているtmuxからWindowsクリップボードにコピーする方法

ENV:Windows 7ラップトップのPuTTYでtmuxを実行しています。作業中にLinuxシステムに対してSSHを実行します。

私はすべてのニーズに使用する前に、tmuxで2つの不具合を解決する必要があります。

  1. VimまたはtmuxターミナルからWindowsのメモ帳にテキストをコピーする必要があります。 vimとPuTTYの両方でマウスサポートを有効にしました。

    "*y"+yを試しましたが、どちらも機能しません。コピーにPuTTYの機能を使用すると、隣接するグリッドのコンテンツもコピーされます。

  2. 1つのペインのvimファイルから別のペインで開いたvimファイルにコンテンツをコピーする必要があります。これにはvimのトリックがありますか? <C-b>[を使用したくありません。

問題2の問題があるため、問題1は私を悩ませています。

28
Vivek Jha

PuTTYは単なる端末エミュレータです。 Vimレジスタ*+はXの選択とクリップボードに関係しています。重複はありません。

PuTTYでは、選択した端末の内容をWindowsクリップボードにコピーすることのみが可能です。 tmuxを実行すると、必然的にウィンドウレイアウトが含まれます。

PuTTYから、実際の統合を可能にするCygwin XWin serverなどのXクリップボードとWindowsクリップボードを統合する実際のXサーバーであるものに切り替える必要があります。 PuTTYセッションの代わりに、サーバーにssh -Xを入力して、LinuxターミナルでVimを起動するか、GVIMを直接起動します。次に、"+yを介したヤンクが期待どおりに機能します。

あるいは、PuTTYを使い続けたい場合は、たとえば、選択をローカルファイルに:writeingし、scpを介してWindowsに転送するなどの回避策を使用する必要があります。

6
Ingo Karkat

PuTTY v0.62とtmux v1.8を使用しています。

tmux config:setw -g mode-mouse on

Tmuxからシス​​テムクリップボードにテキストをコピーしたいのですが、Shiftキーを押しながらマウスでテキストを選択し、マウスの左ボタンをクリックします。

テキストをtmuxに貼り付け、SHIFTキーを押しながらマウスの右ボタンをクリックします。

94
lslab

これは絶対に可能です。以下のすべての構成行は、異なるtmuxペインのマシンからWindowsマシンにコピーされました。はい、PuTTYを1台のマシンに入れ、そこからtmuxとsshを実行して他のマシンに移動し、vim yanksをWindowsブラウザーを含む任意のマシンに移動できます。

私はWindows上でXサーバーを実行しています(Windows上にある必要はありませんが、どこかに必要です)。

必須成分:

  • PuTTY 0.62(Windowsの場合)
  • tmux 1.8(1つのLinuxマシン上)
  • xclip (Linuxマシン)
  • MobaXterm (Windowsのxサーバー用)

特にXサーバーのディスプレイ設定では、ネットワーク設定が少し異なる場合がありますが、ここでは次のようになります。

tmux

# allow mouse to select panes
setw -g mode-mouse on
set-option -g mouse-select-pane on

# allow yank into system clipboard
#bind C-y run "tmux save-buffer - | xclip -i"
bind C-y run-Shell -b "tmux show-buffer | xclip -selection clipboard -i"
# move x clipboard into tmux paste buffer
bind C-p run-Shell -b "xclip -o -selection clipboard | tmux load-buffer - ; tmux paste-buffer"

vim

" get some  autoselect interaction with the system clipboard
set guioptions=aA

MobaXterm

私はこれを実行し続けますが、xtermシェルでtmuxを実行する必要はありません。 X11設定で共有クリップボードが選択されていることを確認します。 xmingは機能するはずですが、他のニーズの設定が機能しないようです。 MobaXtermには、私がとにかく好きな他の利点があります(ファイルブラウザーなど)。

MobaXtermでtmuxを使用してsshセッションを実行できると思いますが、 ソラライズされたカラーパレット があるPuTTYウィンドウを好みます。

PuTTY

tmuxを使用してマシンにsshします。この時点で、DISPLAY環境変数を設定し、bashがソースとなるenvファイルに配置します。このようにして、作成される後続のすべてのウィンドウに設定されます。 tmuxマシンから移動する他のマシンに設定することは、完全に別の練習です。

クリップボードを共有するすべてのマシンで、適切な$DISPLAYが設定されていることを確認してください。 xeyesを実行して、ローカルマシンで表示できるはずです。

全員がクリップボードを共有します。ヤンクするとvimはクリップボードにコピーします。別のtmuxペインに貼り付けるには、bind-key ctrl-p(私にとってはctrl-a ctrl-p)を使用します。

うまくいかない場合は、いつでもxclip -o -selection clipboardを試して、何を貼り付けるかを確認できます。 「tmux選択」テキスト(マウスまたはbind-key [)をbind-key ctrl-y(つまりtmux yank)を使用してクリップボードに(したがって通常のウィンドウウィンドウに)移動することもできます。

15
Phil Cooper

マウスモードがすでにオンになっていると仮定して、これをtmux設定に追加すると、選択するとクリップボードにコピーされます。

bind -Tcopy-mode MouseDragEnd1Pane send -X copy-selection-and-cancel\; run-Shell -b "tmux show-buffer | clip"

V2.6でテスト済み

1
Dakusan