2015年11月23日 星期一

tmux基本用法

最近認識到一個好用的terminal multiplexer,名叫tmux
據說比GNU Screen還要強大,
我沒有用過GNU Screen,所以在選擇上面當然選一個評價好也比較新的,
也就是tmux!
首先就是把tmux安裝好:
Debian/Ubuntu:



sudo apt-get install tmux
Fedora(version 22):



sudo dnf install tmux
安裝完成後,只要在terminal下輸入tmux,就會進入tmux的環境:
tmux.png

(底下多了條綠線) tmux的透過指令操作,常用指令如下:
(大寫C表示Ctrl)
C+b c: 開新視窗
C+b n or <space>: 切換到下一個視窗
C+b P: 切換到上一個視窗
(以下為視窗分割功能)
C+b ": 水平分割視窗
C+b %: 垂直分割視窗
C+b: <page up> or <page down>: 切換分割視窗
C+b C<方向鍵上> or C<方向鍵下>: 分割視窗大小調整
C+b C+<方向鍵左> or C+<方向鍵右>: 分割視窗大小調整
C+b <space>: 重新佈置分割的視窗
C+b !: 取消所有分割視窗
C+b [: 進入copy mode,可以用滑鼠捲動
C+b ,: 更改視窗名稱
C+b .: 更改視窗編號與排序
C+b l: 移至前一個選擇的視窗
C+b {: 將目前的視窗前移
C+b }: 將目前的視窗後移
C+b ?: 顯示所有指令
C+d: 將目前的 Tmux Session 丟到背景去
exit: 跳出當前分割視窗
想知道其他指令,可以在terminal下輸入:



man tmux


其中我覺得session的儲存功能相當方便,
可以把當下的工作環境完整儲存起來,包括ssh的連線;
只要在tmux環境下輸入<Ctrl> + d,就可儲存並且離開tmux。
tmux可以儲存多個session,每儲存一個session都會給一個session id,
可以在terminal下輸入:



tmux ls
列出主機上所有的tmux session與相關資訊,
要恢復session,只要在terminal下輸入:



tmux a -t 0
a是attach的簡寫,0表示session的id。
如果要自訂化設定,設定檔放在:



~/.tmux.conf
預設沒有這個檔案,需要自己創立。
目前在tmux下使用Vim的時候,按下<ESC>會有延遲的現象,
上網找到了一個解決方法
只要在~/.tmux.conf中設定:



set -s escape-time 0
就不會有延遲現象。
另外,碰到的問題還有在tmux下Vim的外掛powerline無法顯示顏色的問題,
在~/.tmux.conf下設定:



set -g default-terminal "screen-256color"
顏色就正常了。

而在tmux 2.1之前的版本,可以通過設定~/.tmux.conf,
不用使用C+b [就可以直接透過滑鼠捲動,可是目前(2015/10)最新的2.1版本已經拿掉這個功能。
參考資料:
Tmux 教學 + Screen 到 Tmux 的無痛轉換
tmux教學

沒有留言:

張貼留言