0% found this document useful (0 votes)
22 views67 pages

Mastering tmux: Tips and Tricks

Uploaded by

openid_FyIGs9jY
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views67 pages

Mastering tmux: Tips and Tricks

Uploaded by

openid_FyIGs9jY
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

TMUX Rocks!

( Terminal MUltipleXer )
Kent Chen
Kent Chen (chenkaie)

chenkaie@[Link]

[Link]

@chenkaie on GitHub

@chenkaie on SlideShare

@chenkaie on LinkedIn

@chenkaie on Twitter

@+KentChenAtGoogle on Google+
終端复用器
基本功
不談
Not a basic intro course of

terminal multiplexer
GNU Screen vs. tmux

Ref: [Link] screen, tmux


分享小弟
「跳槽」經驗 (驚)

An experience sharing after “Jump ship”


Screen

用得好好的?
GNU Screen works god damn well?
為什麼要換
tmux
Why switch to tmux?
請各位客倌
聽我娓娓道來
Now listen carefully
GNU screen

七宗罪
The SE7EN deadly sins
!

罪宗一
The 1st deadly sin
Memory eating MONSTER

Sort by MEM%
100 windows in

Screen

370 MB resident
Ref: [Link]
100 windows in

tmux

5 MB resident
Ref: [Link]
!

罪宗二
The 2nd deadly sin
Split with 3 window happily
來去猩巴克
當個
假文青真碼農
Think about coding at Starbucks
體驗文青生活
妹也走光
寫扣吧

$ screen -x

Reattach to previous session


WTF…

?
Restore a session with splitted screen

Ref: [Link]
windows-split-after-detaching-reattaching-gnu-screen
!

罪宗三
The 3rd deadly sin
Not under active development

A dead project…

since 2008
!

罪宗四
The 4th deadly sin
.
..
...
掰不下去了
Cannot think of more deadly sin
其實還不錯
請繼續支持
自由軟體
Screen is still pretty excellent

Donate Free Software, thanks!
究竟
tmux

有何過人之處
Why tmux rocks?
極具彈性的
Session > Window > Pane

視窗管理
Flexible Session / Window / Pane
window management
Session
Screenshot
Pane 1 Pane 2

Pane 3

Session Name

Window

Left status bar Right status bar


$ tmux info

Client 1 Client 2 Client N


……

Session

Window 1 Window 2 … Window N

Pane Pane Pane Pane


$ tmux choose-session
Client

Session 1 Session 2 Session 3


Window 1 Window 1 Window 2 … Window N Window 1

Pane Pane Pane Pane Pane Pane


client / server model

Ref: [Link]
還有什麼
特異功能
Any tricks & tips?
!

第靈招
Tip & Trick 0
No transfer effort from Screen

無痛轉換 i.e. 靈的轉移 (驚)

Soul Transfer by:


$ alias screen=tmux

My modification:

Ref: [Link]
!

第一招
Tip & Trick 1
Multiple paste buffers

$ tmux list-buffers

<C-b> #

!
$ tmux paste-buffer

<C-b> ]
!

第二招
Tip & Trick 2
Powerful mouse mode support

Resize Pane

Select Pane[1]

Select Window

1. screen can do “select pane” only
!

第三招
Tip & Trick 3
Vertical splitting w/o patching

You can patch GNU


Screen to do it

It’s pretty useful under


16:9 widescreen
!

第四招
Tip & Trick 4
Shared Sessions
Multiple root-privileged system administrators
can share the same session to manage the
server.

remote SSH w/o leaking your “password”

Remote debugging

Pair Programming
Pair Programming
wemux: Multi-User Tmux Made Easy

Mode: mirror / pair / rogue
No Magic

Ref: [Link]
!

第五招
Tip & Trick 5
Search in windows

$ tmux find-window

<C-b> f
!

第六招
Tip & Trick 6
Powerline support
[Link]

• Personal bias … XD

• UTF-8 status line support
!

第七招
Tip & Trick 7
Synchronize panes

<C-b> :

:set synchronize-panes on
!

第八招
Tip & Trick 8
Highly Scriptable
$ tmux list-commands

$ tmux list-keys

Ref: [Link]
!

第九招
Tip & Trick 9
handy tmux_backup.sh
Snapshot :

Ref: [Link]
!

第十招
Tip & Trick 10
PuTTy Fn key issue
Terminal > Keyboard > Function Keys and Keypad: “Xterm R6”

!

第十一招
Tip & Trick 11
Scrollback issue
* How can I make tmux use my terminal's scrollback buffer?

!
Normally, tmux enables the terminal's "alternate screen". Most terminals (such

as xterm) do not save scrollback for the alternate [Link] might prefer

tmux to use the normal screen, so it uses your terminal's scrollback

buffer. This way, you can access the scrollback buffer as usual, for example

using the mouse wheel - although there is no guarantee output inside tmux will

always (or ever) be added to the scrollback.

!
You can make tmux use the normal screen by telling it that your terminal does

not have an alternate screen. Put the following in ~/.[Link]:

!
set -g terminal-overrides 'xterm*:smcup@:rmcup@'

Ref: tmux FAQ [Link]


!

第十二招
Tip & Trick 12
Lightening fast key binding “-n”
#  Add  in  .[Link]  
!
#  Lightning  fast  pane  movement  w/o  prefix  key  by  <Alt-­‐`>  
bind  -­‐n  M-­‐`  select-­‐pane  -­‐t:.+  
!
#  Lightning  fast  pane  resize  w/o  mouse  mode  by  <Alt-­‐ArrowKey>  
bind  -­‐n  M-­‐up        resize-­‐pane  -­‐U  1  
bind  -­‐n  M-­‐down    resize-­‐pane  -­‐D  1  
bind  -­‐n  M-­‐left    resize-­‐pane  -­‐L  1  
bind  -­‐n  M-­‐right  resize-­‐pane  -­‐R  1  
!

第十三招
Tip & Trick 13
Lightening fast key binding (cont.)
#  Add  in  .[Link]  
!
#  Lightning  fast  entering  copy-­‐mode  by  <Alt-­‐c>  
#  Extremely  useful  when  split-­‐pane  are  heavily  used.  
bind  -­‐n  M-­‐c  copy-­‐mode  
bind  -­‐n  M-­‐PPage  copy-­‐mode  -­‐u  
bind  -­‐n  S-­‐PPage  copy-­‐mode  -­‐u  
!
#  Lightning  fast  window  select  by  <Alt-­‐H>  /  <Alt-­‐L>  
bind  -­‐n  M-­‐H  prev  
bind  -­‐n  M-­‐L  next  

Entering copy-mode

Search keyword in scrollback buffer


Reference
Tmux @ Arch Linux wiki

[Link]

Screen vs. tmux Faceoff

[Link]

Fixing Vim's Background Color Erase for 256-color tmux

[Link]

How to Copy and Paste with tmux on Mac OS X

[Link]
tmux-on-mac-os-x
Reference cont.
wemux: Multi-User Tmux Made Easy

[Link]

tmux-powerline

[Link]

tmux FAQ

[Link]

My .[Link]

[Link]

You might also like