Upload
kent-chen
View
4.637
Download
4
Embed Size (px)
DESCRIPTION
TMUX Rocks! tmux vs. GNU screen Trick and tips sharing Some extremely useful lightning fast handy key binding sharing :)
Citation preview
TMUX Rocks! ( Terminal MUltipleXer )
Kent Chen
Kent Chen (chenkaie)
http://chenkaie.blogspot.com
@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: https://www.google.com/trends/explore?q=gnu 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 residentRef: http://jon.endpoint.com/utosc-2012/screen-vs-tmux-faceoff.html
Ref: http://jon.endpoint.com/utosc-2012/screen-vs-tmux-faceoff.html
100 windows in tmux
5 MB resident
!
罪宗二�
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: http://superuser.com/questions/69816/how-to-keep-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
ScreenshotPane 1 Pane 2
Pane 3
Window
Left status bar Right status bar
Session Name
Session
$ tmux info
Window 1 …Window 2 Window N
Pane Pane Pane Pane
……Client 1 Client 2 Client N
Session
Window 1 …Window 2 Window N
Pane Pane Pane Pane
Client
Session 2
$ tmux choose-session
Window 1
Pane
Session 1
Window 1
Pane
Session 3
還有什麼特異功能
Any tricks & tips?
!
第靈招�
Tip & Trick 0
No transfer effort from Screen
無痛轉換 i.e. 靈的轉移(驚)
My modification:
Ref: http://sourceforge.net/p/tmux/tmux-code/ci/master/tree/examples/screen-keys.conf
Soul Transfer by: $ alias screen=tmux
!
第一招�
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
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
Shared Sessions
Pair Programmingwemux: Multi-User Tmux Made Easy
Mode: mirror / pair / rogue
!
第五招�
Tip & Trick 5
Search in windows
$ tmux find-window <C-b> f
!
第六招�
Tip & Trick 6
Powerline support
• Personal bias … XD
• UTF-8 status line support
https://github.com/erikw/tmux-powerline
!
第七招�
Tip & Trick 7
Synchronize panes
<C-b> : :set synchronize-panes on
!
第八招�
Tip & Trick 8
Highly Scriptable
$ tmux list-commands $ tmux list-keys
Ref: https://gist.github.com/lance/7486428
!
第九招�
Tip & Trick 9
handy tmux_backup.sh
Ref: http://sourceforge.net/p/tmux/tmux-code/ci/master/tree/examples/tmux_backup.sh
Snapshot :
!
第十招�
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 screen. You 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 ~/.tmux.conf: ! set -g terminal-overrides 'xterm*:smcup@:rmcup@'
Ref: tmux FAQ http://tmux.svn.sourceforge.net/viewvc/tmux/trunk/FAQ
!
第十二招�
Tip & Trick 12
# Add in .tmux.conf !# 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
Lightening fast key binding “-n”
!
第十三招�
Tip & Trick 13
# Add in .tmux.conf !# 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
Lightening fast key binding (cont.)
Entering copy-mode
Search keyword in scrollback buffer
ReferenceTmux @ Arch Linux wiki
https://wiki.archlinux.org/index.php/Tmux
Screen vs. tmux Faceoff
http://jon.endpoint.com/utosc-2012/screen-vs-tmux-faceoff.html
Fixing Vim's Background Color Erase for 256-color tmux
http://sunaku.github.io/vim-256color-bce.html
How to Copy and Paste with tmux on Mac OS X
http://robots.thoughtbot.com/how-to-copy-and-paste-with-tmux-on-mac-os-x
Reference cont.wemux: Multi-User Tmux Made Easy
https://github.com/zolrath/wemux
tmux-powerline
https://github.com/erikw/tmux-powerline
tmux FAQ
http://sourceforge.net/p/tmux/tmux-code/ci/master/tree/FAQ
My .tmux.conf
https://github.com/chenkaie/DotFiles/blob/master/.tmux.conf