tmux簡(jiǎn)潔教程及config關(guān)鍵配置

這個(gè)教程的目的是為了更好地使用tmux,作為一個(gè)小白,看了網(wǎng)上眾多的資料后,感覺(jué)資料太多,質(zhì)量也良莠不齊。在youtube上找了一個(gè)很好地系列教程,實(shí)際跟著做了一遍后tmux最有用的部分都學(xué)會(huì)了。有什么不懂得直接查查速查表即可。

本次教程的環(huán)境是MAC OS 10.11. 關(guān)于如何安裝tmux可以參考這兩篇文章。

http://cenalulu.github.io/linux/tmux/ : 了解session,window,pane的區(qū)別
http://harttle.com/2015/11/06/tmux-startup.html

這兩篇是我個(gè)人覺(jué)得比較好的文章,可以看完這兩篇文章后再來(lái)看我的教程。做一個(gè)梳理和總結(jié)。

這個(gè)教程是我跟著視頻做完的筆記,視頻里有些內(nèi)容因?yàn)闀r(shí)間問(wèn)題不能用,我也做了相應(yīng)的改進(jìn)。建議最好還是把視頻跟一遍,然后拿我的筆記用做復(fù)習(xí)。

本教程參考的視頻:https://www.youtube.com/watch?v=FEfuXRTqINg

快捷鍵速查表:https://tmuxcheatsheet.com

1 Introduction

為什么使用tmux?
因?yàn)槿绻覀冇胻erminal連接remote server。發(fā)生一些不可抗力,terminal關(guān)了的話,your work is GONE!

但是tmux不一樣,即使你關(guān)閉了tmux。下次重新attch的時(shí)候,你會(huì)發(fā)現(xiàn)之前的東西都還在。這是因?yàn)榧词鼓汴P(guān)閉了tmux,它也還在服務(wù)器的后臺(tái)運(yùn)行。

  • prefix默認(rèn)指的是ctrl鍵位和b鍵位,兩個(gè)一起press,然后再按其他鍵位來(lái)實(shí)現(xiàn)不同的命令。在第4部分,我們會(huì)更改這個(gè)默認(rèn)設(shè)置為ctrl+a,方便輸入。在此之前默認(rèn)都是ctrl+b

舉個(gè)栗子:
prefix + % :水平分割pane
上面這句話里的+號(hào)和:號(hào)可以無(wú)視。:號(hào)之后的內(nèi)容是我寫(xiě)的注釋。
prefix是按下ctrl和b, 然后再按%鍵,這個(gè)%鍵就是shift+5。

2 Panes

分割pane

  • prefix + % :水平分割pane
  • prefix + " : 豎直分割pane

退出

  • exit : 退出一個(gè)pane,直接在shell里輸入即可,這個(gè)比快捷鍵方便

放大一個(gè)pane

  • prefix + z : 把當(dāng)前一個(gè)pane放大(zoom in)。比如在用ls查看output的時(shí)候,因?yàn)橐粋€(gè)pane可能空間太小,所以把這個(gè)pane放大,你可以把注意力全放在這個(gè)pane里。回到之前的多pane狀態(tài)的話只需要重復(fù)一遍命令即可(zoom out)

在pane之間switch

  • prefix + 上下左右的箭頭 :這個(gè)說(shuō)實(shí)話還是不方便,之后會(huì)有設(shè)置的方法來(lái)用鼠標(biāo)選擇pane

resize the pane

  • prefix + (ctrl)+上下左右箭頭 : 與上面命令不同的是,ctrl + b按完之后,不要松開(kāi)ctrl,一直按著,然后再按箭頭來(lái)調(diào)整。不過(guò)因?yàn)樵趍ac下ctrl+箭頭是切換屏幕,所以還得在偏好設(shè)置->鍵盤(pán)->快捷鍵->Mission Control里把對(duì)應(yīng)的快捷鍵取消掉。

3 Windows

創(chuàng)建window

  • prefix + c : 創(chuàng)建一個(gè)新的window。最下面會(huì)多出window的編號(hào)。有*號(hào)所在的window就是當(dāng)前正在操作的window。

在不同的window間移動(dòng)

  • prefix + 數(shù)字1,2,3 : 因?yàn)槟芸吹讲煌瑆indow的數(shù)字編號(hào),所以直接輸入想去的window的數(shù)字編號(hào)即可

關(guān)閉window

  • prefix + & : 關(guān)閉當(dāng)前window

重命名window:因?yàn)閯?chuàng)建新的window后,下面除了數(shù)字編號(hào)不同外window名稱都是一樣的。所以為了知道每一個(gè)window是什么,最好重命名一下。

  • prefix + , (逗號(hào)):更改window名稱。但是這里遇到一個(gè)問(wèn)題。更名后,我隨便使用ls或cd命令后,window名稱會(huì)隨著目錄的不同而變化。google后發(fā)現(xiàn)這個(gè)是zsh下oh-my-zsh的特性。于是打開(kāi)~/.zshrc, 講DISABLE_AUTO_TITLE="true"這一行反注釋掉。source ~/.zshrc后,測(cè)試更改的名稱,發(fā)現(xiàn)一切正常。

4 Configuration

如果沒(méi)有配置文件的話先創(chuàng)建: touch ~/.tmux.conf
視頻中的文件配置

# Send prefix
set-option -g prefix C-a
unbind-key C-a
bind-key C-a send-prefix

# Use Alt-arrow keys to switch panes
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D

# Shift arrow to switch windows
bind -n S-Left previous-window
bind -n S-Right next-window

# Mouse mode
set -g mode-mouse on
set -g mouse-resize-pane on
set -g mouse-select-pane on
set -g mouse-select-window on

# Set easier window split keys
bind-key v split-window -h
bind-key h split-window -v

# Easy config reload
bind-key r source-file ~/.tmux.conf \; display-message "tmux.conf reloaded"

首先,在更改了.tmux.conf后,在tmux里的快捷鍵沒(méi)有變化。查找后發(fā)現(xiàn)是tmux只有在新建session的時(shí)候,才會(huì)去找tmux.conf文件。所以說(shuō),我之前創(chuàng)建的那些session都沒(méi)有參考tmux.conf. 所以我就用tmux lstmux kill-session -a只保留當(dāng)前session。再刪除當(dāng)前session tmux kill-session -t py27。這下刪除了所有創(chuàng)建好的session。

然后再次用tmux new -s py27創(chuàng)建一個(gè)新的名為py27的session。有提示了,但是錯(cuò)誤提示顯示沒(méi)有mode-mouse命令。google之發(fā)現(xiàn)在2.1之后的tmux版本里,已經(jīng)廢除了這個(gè)命令。想要開(kāi)啟mouse mode的話,只需要一個(gè)句命令即可set -g mouse on

更新后如下

# Send prefix
set-option -g prefix C-a
unbind-key C-a
bind-key C-a send-prefix

# Use Alt-arrow keys to switch panes
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D

# Shift arrow to switch windows
bind -n S-Left previous-window
bind -n S-Right next-window

# Mouse mode
set -g mouse on


# Set easier window split keys
bind-key v split-window -h
bind-key h split-window -v

# Easy config reload
bind-key r source-file ~/.tmux.conf \; display-message "tmux.conf reloaded"

Send prefix
把prefix的ctrl+b變?yōu)榱薱trl+a,因?yàn)檫@樣按起來(lái)方便些。基本上用tmux的都改了這個(gè)。

Use Alt-arrow keys to switch panes
不用按prefix,直接用alt+箭頭在pane之間switch。實(shí)際用過(guò)之后才發(fā)現(xiàn)真是太方便了!

Shift arrow to switch windows
不用按prefix,直接用shift+箭頭在window之間switch。太方便了!

Mouse mode
開(kāi)啟鼠標(biāo)模式。用鼠標(biāo)就能切換window,pane,還能調(diào)整pane的大小,方便!

Set easier window split keys
這一部分是用來(lái)更方便切分pane的。prefix + v 代表豎著切,prefix + h 代表橫著切。比起默認(rèn)的切割方法不僅直觀而且方便。

Easy config reload
下一次如果修改了.tmux.conf的設(shè)置的話,不用關(guān)掉tmux。直接用prefix+r,就能重新加載設(shè)置。

5 Session

查看所有的session(在terminal輸入)

  • tmux ls : 這個(gè)命令是在terminal里輸入的。當(dāng)前正常運(yùn)作中的tmux server會(huì)顯示(attached)。沒(méi)有的話就是已關(guān)閉,tmux server在后臺(tái)運(yùn)行。

更名session(tmux狀態(tài)下輸入)

  • prefix + $ : 更名后好讓自己知道每一個(gè)session是用來(lái)做什么的。通常一個(gè)session對(duì)應(yīng)一個(gè)project

創(chuàng)建session的時(shí)候直接命名(在terminal輸入)

  • tmux new -s py35 : 新建一個(gè)名為py35的session

斷開(kāi)一個(gè)session(detached) (tmux狀態(tài)下輸入)

  • prefix + d :退出session。在只有一個(gè)window的狀態(tài)下,直接輸入exit也能退出

重新連接某一個(gè)session wich name(在terminal輸入)

  • tmux a -t py35 : 重新連接py35 session。這里的a是attach的意思

偷懶連接上一個(gè)session(在terminal輸入)

  • tmux a : 如果只有一個(gè)session的話,這個(gè)是最快的連接方法

刪除session(在terminal輸入)

  • tmux kill-session -a -t py35 : 刪除除了py35以外的所有session
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容