tmux セッションで、1 つのペインから並列ペインにいくつかの出力を送信する簡単な方法があるかどうかを調べようとしています。
たとえば、左ペイン (0.0 とします) にいて、pwd
コマンドの出力を右ペイン (0.1 とします) に送信したいとします。これを簡単に行う方法はありますか。
これに答えがある場合は事前に謝罪しますが、長い間グーグルで検索しても何も得られませんでしたtmux send-keys -t right 'some text'
。
代わりに、隣接するペインに出力を表示したいのですが、これを行う方法はありますか?
答え1
出力を隣のペインに表示したい
他のペインに接続されている端末のファイル名(tty
印刷するもの)がわかっている場合は、そこに書き込むことができます。例:
pwd >/dev/pts/1
しかし、これだけではディスプレイ文字はそこにあります。ペインで実行されるプログラムとのやり取りはありません。「表示」という言葉を使いましたが、これがあなたが望んでいることなのかはわかりません。この解決策は tmux がなくても機能します。
別のペインで呼び出すコマンドの stdin に出力を送信する場合は、名前付きパイプを使用します。
mkfifo foo
pwd >foo
次に、別のシェル (別のペイン) に移動して、以下を読み取りますfoo
。
<foo whatever
これも tmux に依存しません。
出力を別のペインに貼り付ける場合 (たとえば、それをシェル内の新しいコマンドのフラグメントにする) は、次のようにします。
pwd
ソース ペインで通常どおり呼び出します。- コピー モードに切り替えて出力をコピーします。マウス サポートを使用すると、マウスの左ボタンを押したままドラッグするだけで十分です。ボタンを放すと、選択したテキストが自動的にバッファーに保存されます。
- ターゲット ペインに移動します。
- 保存したテキストを
paste-buffer
(prefix]デフォルトでは)で貼り付けます。