tmux

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Tmux and the translation is 87% complete.
Outdated translations are marked like this.
Other languages:
English • ‎español • ‎italiano • ‎русский • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어

tmux (terminal multiplexer) はそれぞれ別のプログラムが動作する多くの端末(もしくはウィンドウ)を、一つの画面もしくは端末のウィンドウから作成し、アクセス、管理することを可能にするプログラムです。tmux は画面から分離しバックグラウンドで動き続け、後々画面に合流することもできます。[1]

GNU Screen に慣れ親しんだユーザーにとって、tmux は適切な代替ソフトになるでしょう。

インストール

USE フラグ

USE flags for app-misc/tmux Terminal multiplexer

debug Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces
selinux !!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur
systemd Enable use of systemd-specific libraries and features like socket activation or session tracking
utempter Include libutempter support
vim-syntax Pulls in related vim syntax scripts

Emerge

app-misc/tmux をインストール:

root #emerge --ask app-misc/tmux

設定

tmuxの基本的なインストールでは、グローバル(/etc/tmux.conf) もしくはパーソナル(~/.tmux.conf)な設定ファイルを用意しません。設定例は /usr/share/doc/tmux-VERSION/example_tmux.conf に存在するので、パーソナルおよびグローバルな場所にコピーして使うこともできます。

設定例

FILE ~/.tmux.conf
set -g default-terminal "screen-256color"   # Use 256 colors
set -g history-limit 100000                 # Scrollback buffer number of lines
 
# Start window indexing at one instead of zero
set -g base-index 1
 
# Set the prefix key and some key bindings to match GNU Screen
set -g prefix C-a
bind-key C-a last-window
 
# Key bindings for horizontal and vertical panes
unbind %
bind | split-window -h
bind - split-window -v
 
# Enable window titles
#set -g set-titles on
 
# Window title string (uses statusbar variables)
set -g set-titles-string '#T'
 
# Status bar with load and time
set -g status-bg '#4e4e4e'
set -g status-fg '#ffffff'
set -g status-left ' '
set -g status-right '#[bg=#bbbbbb]#[fg=#000000]#(cut -d " " -f -3 /proc/loadavg) #[bg=#4e4e4e]#[fg=#ffffff]#(
date +" %H:%M ")'
set -g window-status-format '#I #W'
set -g window-status-current-format ' #I #W '
setw -g window-status-current-bg '#55ff55'
setw -g window-status-current-fg '#000000'
 
# Pane border colors
set -g pane-active-border-fg '#bbbbbb'
set -g pane-border-fg '#555555'
 
# Bind to reload config
bind r source-file ~/.tmux.conf
  1. Match session numbers to number row

set -g base-index 1

  1. Set TERM, the default is "screen", "screen-256color" can be tried if "tmux-256color" doesn't work.

set -g default-terminal "tmux-256color"

  1. Set A for 'prefix2' so that 'prefix' can remain unchanged

set -g prefix2 C-a

  1. Enable mouse

set -g mouse on

  1. Disable drag action in normal mode if your pointer causes problems with

unbind -n MouseDrag1Pane

  1. Also disable in copy mode
  2. unbind -Tcopy-mode MouseDrag1Pane
  1. Set the bar and inactive borders to blue, hightlighting current in green.
  2. set-option -g status-style fg=black,bg=blue
  3. set-window-option -g window-status-current-style bg=green
  4. set-option -g pane-border-style fg=blue
  5. set-option -g pane-active-border-style fg=green

}}

設定ファイルを再読み込みするには、ターミナルから次を実行してください:

user $tmux source-file ~/.tmux.conf

Alternatively, modifications to the file can be loaded from within tmux via:

:source-file ~/.tmux.conf

Automatic connection

Running tmux with exec and the -ADX options will cause tmux to replace the current shell and create a session, or if one exists connect to it and both detach and exit the other client. This provides a very consistent way of working with remote sessions, and it can be run automatically:

Bash

test -n "$PS1" && test -z "$TMUX" -a -n "$SSH_TTY" && exec tmux new -ADX

Fish

status is-interactive ; and test -z "$TMUX" -a -n "$SSH_TTY" ; and exec tmux new -ADX

プラグイン

僅かながらpluginstmuxで利用可能です。以下の章で利用可能なオプションを確認してください。

tpm

tpmtmux プラグインマネージャ (plugin manager) です。インストールプロセスについてのさらなる情報のためには、tpm サブ記事を確認してください。

tmux-mem-cpu-load

tmux-mem-cpu-loadtmuxのステータスを示す行でシステムをモニターするように設計された小さなプログラムです。インストールに関する詳細は別の記事(tmux-mem-cpu-load )を確認してください。

Tmux Resurrect

tmux-resurrect はシステム再起動を跨いで tmux 環境を維持します。インストール手順のさらなる詳細については resurrect サブ記事をお読みください。

使い方

キー・バインディング

tmux は、アタッチされたクライアントから、プリフィックスキーストローク (デフォルトでは Ctrl+b) とコマンドキーの順のキーコンビネーションを使用して、制御することができます。

Ctrl+b を押した後、次のキーコンビネーションを使用できます:

一般操作

  • ? = すべてのキーバインディングを一覧表示する。
  • d = 現在のクライアントをデタッチする。
  • : = tmux コマンドプロンプトに入る。

ウィンドウの作成や管理

  • c = 新しいウィンドウを作成する
  • n = 次のウィンドウへ変更する。
  • p = 前のウィンドウへ変更する。
  • l = 直前に選択していたウィンドウへ移動する。
  • 0-9 = 0 から 9 のウィンドウを選択する。
  • ' = 選択するウィンドウインデックスの入力を促す。その後、番号またはタイトルを入力してそのウィンドウに切り換える。
  • , = 現在のウィンドウの名前を変更する。
  • w = 現在のウィンドウを対話的に選択する。
  • :、そして list-windows と入力して enter = ウィンドウの一覧を表示する。

ペインの作成や管理

  • " = 現在のペインを上下に分割する。
  • % = 現在のペインを左右に分割する。
  • o = 現在のウィンドウの次のペインを選択する。
  • ; = 直前にアクティブだったペインへ移動する。
  • { = 現在のペインと前のペインを入れ替える。
  • } = 現在のペインと次のペインを入れ替える。
  • Ctrl+o = 現在のウィンドウ内のすべてのペインを順方向にローテーションする。
  • Alt+1 から Alt+5 = 5 種類のプリセットレイアウトのうちのひとつでペインを並べる: even-horizontal、even-vertical、main-horizontal、main-vertical、または tiled。
  • x = 現在のペインを殺す。
  • ! = 現在のペインをウィンドウから分離する。

コピーや貼り付け、スクロールの操作

利用できるキーは emacs モード (デフォルト) が選択されているか、vi モードが選択されているかによって異なります。.tmux.conf で mode-keys オプションを設定することで vi モードにすることができます。

  • [ = テキストをコピーするためにコピーモードに入るか、履歴を表示する。
  • ] = 一番最近コピーされたテキストバッファを貼り付ける。
  • # = すべてのペーストバッファを一覧表示する。
  • - = 一番最近コピーされたテキストバッファを削除する。

セッション制御

セッションの開始

tmux が開始されると、セッションに対応するソケットが /tmp/S-<UID>/<セッション名> に作成されます

tmux は次のコマンドで開始することができます:

user $tmux

あるいは、起動時にセッションに名前を付ける場合は、次を実行してください:

user $tmux new-session -s portage

セッションのリスト表示

現在存在しているセッション情報を確認するには、tmux セッションを一覧表示してください:

user $tmux ls
0: 1 windows (created Thu Apr  9 09:09:03 2015) [180x65] (attached)

セッションを一覧表示したときに、セッション名がセッション情報の行の最初の項目として現れているはずです。上の出力からは、名前を付けずにセッションが作成されたため、そのセッションが 0 として参照されていることが分かります。

セッションの一覧表示は、長い形式の引数 list-sessions を入力ことでも行えます。

user $tmux list-sessions
0: 1 windows (created Thu Apr  9 09:09:03 2015) [180x65] (attached)

前の一覧表示コマンドとまったく同じ出力が表示されます。

セッション名の変更

セッションを開始するために単に tmux コマンドを使用すると、人間にとって分かりやすい素敵な名前のついたセッションは提供されません。

デフォルトのセッション名が十分に説明的でなければ (0 は通常、内容を説明していないでしょう)、セッションの名前を変更することができます。例えば、牛の Larry くんが、起動時にセッション名を指定せずに tmux を開始したとしましょう。彼は Portage の新しいバージョンのコンパイルを開始し、セッション名を現在の作業を反映するように変更したくなりました。セッション名を変更するために、tmux の制御を得ます。魔法のキーストローク Ctrl+b、続けて : を押すことで、tmux コントロール行にフォーカスします。デフォルトでは行が黄色になるでしょう。そうして、彼は次を実行するでしょう:

:rename-session -t 0 portage

ここで 0 は既存の (デフォルトの) セッション名で、portage はセッションに与えたい新しい名前です。tmux セッションからデタッチされている状態で名前を変更するには、次を実行してください:

user $tmux rename-session -t 0 portage

セッションを再開する

セッションをデタッチしても、アクティブな端末はアクティブであり続け、完了していないコマンドも同様に実行され続けます。セッションを再開するには、attach -t <セッション名> を使用してください。

user $tmux a -t portage

または、既存のセッションにアタッチするための長い形式を使用してください:

user $tmux attach -t portage

デーモン風の操作

セッションにアタッチせずに tmux セッション内でコマンドを開始する (デーモンのように) には、実行したいコマンドをクォートして、new-session -d に続けて使用してください:

user $tmux new-session -d 'emerge -uDNvp @world'

参考

  • Screen - tmux 以外の選択肢

外部の情報

参照