まだ完全にtmuxを使用していません!(恐らく)

こんにちは、Habr!記事「(たぶん)君はまだtmuxの真の力を追き出せていない」の翻訳をご紹介します



コンテンツ



  • tmuxとは
  • 新しいセッションの開始と開始
  • 新しいウィンドウを開く
  • ウィンドウ間の遷移
  • ウィンドウの分割とパネルの作成
  • パネル間を移動する
  • セッション間の移動
  • 【実用】tmuxで表示されているコンテンツをリダイレクトする
  • 【実用】情報欄にGitブランチ名を表示する
  • 【実用】現在の操作のパスを表示します
  • 【実用】スニペットの呼び出し
  • 設定へのリンク.tmux.conf
  • Tmuxバージョンの互換性


tmuxとは



tmuxはターミナルマルチプレクサです。SSHを使用してマシンで作業している場合、重いプログラムを実行しているが、実行を停止せずに別のタスクなどに移動したい場合は、tmuxが非常に役立ちます。



しかし、tmuxの機能はそれだけではありません。tmuxにはさまざまな便利な使用例がありますが、以下の例で説明します。



基本的な考え方は、Vimのmodに似ています。プレフィックス 'a(予約済みのキーバインディングまたはキーバインディング)を使用して、modを変更できます。デフォルトはctrl + bです。



新しいセッションの開始と開始



OSがUbuntuまたはDebianの場合、コマンド `sudo apt-get installtmux`を使用してtmuxをインストールできます。MacOSの場合-brewinstalltmux。



実行するコマンド:



$ tmux


tmuxを開始してすぐに新しいセッションに名前を付ける場合は、次のコマンドを使用します。

$ tmux new -s {   }


画像



新しいウィンドウを開く



tmuxでセッションを作成したら、新しいウィンドウを作成することもできます。標準リンクは「ctrl + b + c」です。プレフィックスを保持している場合は、「prefix + c」リンクを使用できます。ほとんどの場合、「c」の値はcreateであるため、このようなバンドルです。



画像



ウィンドウ間の遷移



作成したウィンドウを自由に切り替えることもできます。このための標準的なバインディングは、「prefix + p」(p-前)と「prefix + n」(n-次)です。



プレフィックスの使用は必ずしも便利ではないため、ウィンドウを切り替えるためのキーバインディングをカスタマイズしました:次のウィンドウの場合はshift + rightKey、前のウィンドウの場合はshift + leftKeyです。



画像



ウィンドウの分割とパネルの作成



tmuxでウィンドウを分割することは、vimで分割することに似ています。ウィンドウをいくつかのパネルに分割するため、1つのウィンドウでvimを開き、別のウィンドウでhtopを開き、3番目のウィンドウでプログラムを実行できます。



キーバインドがない場合、ウィンドウを分割するためのコマンドは、プレフィックス+「split-window-h」、プレフィックス+「split-window-v」です。



毎回処方したくないので、自分用のホットキーを接頭辞+「-」、接頭辞+「|」の形で作成しました。



画像



パネル間を移動する



パネル間を移動するための標準コマンドは複雑で、使い勝手がよくないため、この場合、独自のホットキーを割り当てました:ctrl + shift + upKey、ctrl + shift + downKey、ctrl + shift + rightKey、ctrl + shift + leftKey。



画像



セッション間の移動



ctrl + tキーの組み合わせを使用して、セッションのリストを呼び出し、↑↓キーを使用して必要なセッションを選択できます。



画像



【実用】tmuxで表示されているコンテンツをリダイレクトする



基本的に、tmuxは一種の仮想端末であり、/ dev / pts / {fooBar}ディレクトリに含まれています。パネルごとに同じ形式のディレクトリが作成されます。



つまり、パネルごとに{fooBar}を定義すると、stdoutストリームとstderrストリームをXパネルからYパネルに、もう1つをZパネルに個別にリダイレクト



できますしたがって、異なるstderrパネルとstdoutパネルに書き込んだプログラムを出力できますまた、操作のログとして端末を使用します。



画像



【実用】ステータスバーにGitブランチの名前を表示する



これは、.tmux.conf(tmux構成ファイル)からShellscriptおよびPythonスクリプトを読み取る機能を使用するライフハックです。



ステータスバーは、次のコマンドで構成できます。



set-option -g status-right '#{host} #(tmux run-shell "tmux_hook --default true --git-path #{pane_current_path}")'


#{host}は明らかにホスト名であり、tmux run-shellは、ステータスバーの設定に値を返すカスタムスクリプトを実行します。



tmux_hookは、時刻と現在のGitブランチを表示するために作成したファイルですが、基本的に任意のテキスト情報を返すことができます。たとえば、正しく設定されていれば、ステータスバーにTwitterのタイムラインを表示することもできます。



画像



【実用】現在の操作のパスを表示します



多くの場合、ターミナルをジャンプして、どのディレクトリにあり、どのパスに含まれているのかを理解する必要があります。



このためにもう一度pwdを記述したくないので、現在のパネルへのパスが表示されているのと同じ場所に現在の操作のパスを表示できます。



setw -g pane-border-format '#{pane_tty} | #{pane_current_path}'


画像



【実用】スニペットの呼び出し



tmuxは端末共有機能を備えたセッションマネージャーですが、いくつかのIDE機能を実行できます(かっこいいですね)。ホットキーを特別な送信キー設定にバインドして、ターミナルで呼び出すことができます。



たとえば、以下の例のように送信キーを設定した場合、プレフィックス+ 1を押すだけで、pythonの操作に必要なインポートコマンドを表示できます。



bind -T prefix -n 1 send-keys "import os\nimport sys\n"


画像



設定へのリンク.tmux.conf



ここに



Tmuxバージョンの互換性



一部のtmux設定が機能しない場合があります。この場合、バージョンが新すぎるか古すぎる可能性があります。



上記のすべてとリンクを残した構成は、tmuxバージョン2.8以降用です。何かがうまくいかない場合は、このバージョンがあなたに適しているかどうかを確認してください。



自分で何かをデバッグする場合は、まずman tmuxを参照する必要があります。これは、現時点でtmuxに関する最も信頼性の高いドキュメントです。



この記事の原本へのリンクはここにあり



ますこの記事が好きかどうか教えていただければ幸いです。翻訳は明確でしたか、役に立ちましたか?



All Articles