回答:
彼らのウェブサイトから:
- tmuxはGNU画面とどのように違いますか?他に何が提供されますか?
tmuxには、画面を超えるいくつかの利点があります。
- 明確に定義されたクライアント/サーバーモデル:ウィンドウは、複数のセッションに同時に接続され、複数のクライアント(端末)から表示され、同じtmuxサーバー内のセッション間で自由に移動できる独立したエンティティです。
- 対話的に使用するか、キーバインディングとして使用するか、シェルから使用するかに関係なく、同じ構文を持つ一貫性のある十分に文書化されたコマンドインターフェイス。
- シェルから簡単にスクリプト可能;
- 複数の貼り付けバッファー。
- viまたはemacsキーレイアウトの選択。
- ウィンドウサイズを制限するオプション。
- 特定のコマンドの出力の最初の行を表示する機能を備えた、より使いやすいステータス行構文。
- よりクリーンで、モダンで、簡単に拡張できる、BSDライセンスのコードベース。
tmuxが省略した画面にはまだいくつかの機能があります。
- 組み込みのシリアルおよびtelnetサポート。これは肥大化しており、tmuxに追加されることはほとんどありません。
- IRIXやHP-UXなどの幅広いプラットフォームサポート、および奇数の端末向け。
<C-Left>
in vim
で愚かなバグを解決するべきtmux
です。
1つの違いは、1つのセッションに複数の端末が接続されている場合の2つの動作です。
画面では、接続されている各端末のビューは他の端末から独立しています。tmuxを使用すると、接続されているすべての端末で同じことがわかります。
1つのtmuxセッションに2つの端末が接続されているとします。^B1つの端末に1 を入力すると、他の端末もウィンドウ1に切り替わります。
1つの画面セッションに2つの端末を接続し、^A1つに1 を入力すると、他の端末には影響しません。
これは、tmux 1.2での私の経験に基づいています。1.3はリリースされましたが、この動作の変更に関する変更ログには何も気付きませんでした。
元のtmuxセッションが呼び出され0
た場合(デフォルト)、実行できますtmux new-session -t 0
)、同じウィンドウセットに接続された新しい独立したセッションを起動し、独自のビューを持つことができます。
tmux new -t 0
。
tmuxは、GNU画面と比較してかなり新しいです。両方のプログラムがほぼ同じ問題を解決するため、利点/欠点は難しい質問です。tmuxはBSDライセンスですが、screenはGNU GPLです。これは一部の人々にとって重要です。
現時点では、画面は(Linux上で)より多く表示されています。つまり、tmuxよりも特定のLinuxボックスで表示される可能性が高くなります。ただし、tmuxは、基本インストールの一部として含まれているため、OpenBSDでより多く表示されます。
どちらのプログラムでも同じことができますが、状況はそれよりも少し複雑です。画面機能の多くはtmuxにも組み込まれているため、2つの切り替えはそれほど複雑ではありませんが、どちらか一方のパワーユーザーである場合は、もう一方に切り替えるときに不満を感じるでしょう。
他のプログラムと同様に、それは本当にあなたのニーズとあなたがどちらに慣れているかに依存します。両方試してみて、どちらが上手く遊んでいるか見てみましょう。
私の使用における最大の違いは、Gnu Screenではフレームを水平方向にしか分割できないのに対し、Tmuxでは水平と垂直の両方に分割できることです。これは一種の動いているターゲットですが、ここで私が言ったように、垂直方向の分割がscreenに進入していると言います。
それ以外は、物事はフラットです。
すぐにbyobu
使用できるように、画面で使用できるラッパーについて言及するだけだと思いました。このようなものがtmuxで利用可能かどうかはわかりませんがbyobu
、.screenrcをほんの一握りの行にしました。byobuとスクリーンショットに関するこの短い記事をご覧ください。びょうぶのプロジェクトページには、折り畳み式の部屋の仕切りとして機能する装飾的なマルチパネルスクリーンの日本語の用語に由来する名前が記載されています。また、実行するだけで画面設定が損なわれることはないため、安全に試すことができます。でセッションを開始byobu
すると、を使用して自由に再接続できますがscreen
、カスタマイズを失ったことはありませんbyobu
(したがって、最初の呼び出しにのみ使用します)。それの2つの主な利点は次のとおりです。
私はキーバインド部分を使用していませんが、ステータスバーは間違いなく便利です。
また、Screen Vs tmuxリンクが役立つ場合があります。私はそれのほとんどが既存の答えによってすでに言及されていると思います。
byobu
が、既存の画面設定を混乱させないため、コマンドを実行して自分で見つけるのと同じくらい簡単です(メニュー駆動です)。そして、私は自分の回答をコミュニティWikiにしたので、気軽に編集してください。
Drenchには興味深い点があります-同じセッションに2回接続するデフォルトの動作はtmuxで異なります。ただし、2回アタッチして、そのセッションのウィンドウを個別に表示する場合は、tmuxを起動します
tmux new-session -t <session name>
これにより、新しいセッションが作成され、既存のセッションからウィンドウがアタッチされます。最初のセッションに名前を付けなかった場合は、「rename-session」でセッションを追加できます。
tmuxはより新しく、さらにいくつかの機能があります。
良い使い方は良いセットアップにかかっていることがわかりました。
編集にはvi(vim)を使用し(Ruby on Rails)、それをうまく機能させるためのいくつかのセットアップがあります。
以下は、役に立つ〜/ .tmux.confファイルの設定です。
bind r source-file ~/.tmux.conf \; display "Reloaded!" # Reload with ctrl-r
set -g prefix C-a # prefix from ctrl-b to ctrl-a
unbind C-b # allow ctrl-b for other things
set -sg escape-time 1 # quicker responses
bind C-a send-prefix # Pass on ctrl-a for other apps
set -g base-index 1 # Numbering of windows
setw -g pane-base-index 1 # Numbering of Panes
bind \ split-window -h # Split panes horizontal
bind - split-window -v # Split panes vertically
bind h select-pane -L # Switch to Pane Left
bind j select-pane -D # Switch to Pane Down
bind k select-pane -U # Switch to Pane Up
bind l select-pane -R # Switch to Pane Right
bind -r C-h select-window -t :- # Quick Pane Selection
bind -r C-l select-window -t :+ # Quick Pane Selection
bind -r H resize-pane -L 5 # Switch to Pane Left
bind -r J resize-pane -D 5 # Switch to Pane Down
bind -r K resize-pane -U 5 # Switch to Pane Up
bind -r L resize-pane -R 5 # Switch to Pane Right
setw -g mode-mouse off # Mouse Off
set -g mouse-select-pane off # Mouse Off
set -g mouse-resize-pane off # Mouse Off
set -g mouse-select-window off # Mouse Off
setw -g monitor-activity on # Activity Alerts
set -g visual-activity on
set -g status-fg white # Status line Colors
set -g status-bg black
setw -g window-status-fg cyan # Window list color
setw -g window-status-bg default
setw -g window-status-attr dim
setw -g window-status-current-fg white # Active Window Color
setw -g window-status-current-bg red
setw -g window-status-current-attr bright
set -g pane-border-fg green # Pane colors
set -g pane-border-bg black
set -g pane-active-border-fg white
set -g pane-active-border-bg yellow
set -g message-fg white # Command/Message Line.
set -g message-bg black
set -g message-attr bright
set -g status-left-length 40 # Status Line, left side
set -g status-left "#[fg=white]Session: #S #[fg=yellow]#I #[fg=cyan]#P"
set -g status-utf8 on # Status Line, right side
set -g status-right "-------"
set -g status-interval 60 # frequency of status line updates
set -g status-justify centre # center window list
setw -g mode-keys vi # vi keys to move
unbind v # Open panes in same directory as tmux-panes script
unbind n
bind v send-keys " ~/tmux-panes -h" C-m
bind n send-keys " ~/tmux-panes -v" C-m
unbind Up # Maximizing and Minimizing...
bind Up new-window -d -n tmp \; swap-pane -s tmp.1 \; select-window -t tmp
unbind Down
bind Down last-window \; swap-pane -s tmp.1 \; kill-window -t tmp
bind P pipe-pane -o "cat >>~/#W.log" \; display "Toggled logging to ~/#W.log"
私は1つの違いを追加する自由を取ります:
tmuxはncursesベースですが、screenは追加の要素を描画しません。誰かがスクロール(s)をサポートするターミナルエミュレータを使用すると、画面でスクロールしますが、tmuxではスクロールしません(少なくともデフォルトの構成では)。同じことは、検索および類似の機能に適用されます。