Tmux 學習摘要6--工做流

高效使用窗口和窗格

將窗格轉變成窗口

將當前窗格升級爲一個獨立的窗口,使用快捷鍵 PREFIX !,此後,當前會話中會多出一個窗口。shell

將窗口轉變成一個窗格

在命令模式下使用 join-pane 命令,該命令的格式爲:vim

join-pane -s [souce-window-no] -t [target-window-no]

-s-t 兩個參數均可以忽略,表示爲當前的窗口或窗格。bash

最大化窗格與還原

將當前窗格放大,放在一個獨立的窗口中顯示,查看完以後再還原。服務器

實現此功能,先將當前的窗格經過 break-pane 命令分離出來,再將它放到一個臨時的窗口中顯示。將該操做綁定到方向鍵上:session

unbind Up
bind Up new-window -d -n tmp \; swap-pane -s tmp.1 \; select-window -t tmp

它使用 swap-pane 命令實現窗格的互換。 同理,要將窗口從當前的臨時窗口還原到的原來窗口,仍是使用 swap-pane 命令,並綁定到方向鍵:ssh

unbind Down
bind Down last-window \; swap-pane -s tmp.1 \; kill-window -t tmp

因爲它是使用 last-window 來查找原來的窗口,所以有必定的缺陷,咱們在放大查看後,不可切換到其它窗口,只能當即還原回來。操作系統

在建立窗口和窗格時啓動命令

能夠指定 tmux 在建立會話中的第一個窗口時啓動什麼命令,命令寫在建立會話的最後,如:命令行

$ tmux new-session -s servers -d "ssh deploy@burns"

也能夠在建立窗格時指定啓動什麼命令,如:日誌

$ tmux split-window -v "ssh dba@smithers"

可是這兩種方式指定的自動啓動命令,當命令結果或退出後,其關聯的窗口或窗格也會自動關閉。code

會話管理

在會話間移動

一臺機器上的全部會話都由同一個 tmux 服務器管理。而每一個開啓會話的終端只是一個 tmux 客戶端。咱們使用 switch-client 命令在各會話間進行切換。或者使用快捷鍵 PREFIX (PREFIX ) 在各會話間進行切換關聯。也能夠用 PREFIX s 列出全部的會話,供咱們選擇後切換。

建立或者關聯到一個現有會話

可使用 has-session 命令進行判斷,只有當會話不存在時才建立會話:

if ! tmux has-session -t remote; then
    exec tmux new-session -s development -d
    # other setup commands before attaching ...
fi
exec tmux attach -t development

在會話間移動窗口

能夠將一個會話中的窗口移到到另外一個會話中。使用 move-window 命令,該命令綁定到快捷鍵 PREFIX .,能夠按下該快捷鍵,選擇要移動的窗口,而後輸入目標會話名。例如:

先建立兩個會話:

$ tmux new -s editor -d vim
$ tmux new -s processes -d top

關聯到 processes 會話,在其中按下 PREFIX . ,而後在命令行中輸入 editor,此時會將 processes 會話中的惟一窗口移到 editor 會話中,這些意味着 processes 會話將會關閉。移動窗口對應的命令以下:

$ tmux move-window -s processes:1 -t editor

tmux 與操做系統

使 tmux 與操做系統緊密集成。

使用不一樣的 Shell

默認使用的是 bash, 若是要改爲 zsh,能夠在 .tmux.conf 中配置:

set -g default-command /bin/zsh
set -g default-shell /bin/zsh

啓動終端時自動運行 tmux

能夠在 Linux 上的 .bashrc 或者 OS X 上的 .bash_profile 上進行配置,並將會話設置爲用戶名:

if [[ "$TERM" != "screen-256color" ]]
then
    tmux attach-session -t "$USER" || tmux new-session -s "$USER"
    exit
fi

將程序的輸出記錄到日誌文件

使用 pipe-pane 命令將窗格的輸出保存到一個文件中,在命令模式下開啓該功能:

pipe-pane -o "mylog.txt"

當使用相同的參數從新執行時,輸出保存到日誌的功能會被關閉,即該功能像一個開關。

能夠將它綁定到一個快捷鍵:

bind P pipe-pane -o "cat >>~/#W.log" \; display "Toggled logging to ~/#W.log"

參考資源:

tmux: Productive Mouse-Free Development

相關文章
相關標籤/搜索