tmux 配置 & 使用

來源:互聯網
上載者:User
文章目錄
  • 更改預設按鍵首碼
  • 按鍵綁定
  • 定製狀態行
  • 預設啟動應用
  • 複製與粘貼操作

 

從 screen 切換到 tmux 不是平白無故的,自然有其充分的理由。我感覺使用 tmux 更加方便、靈活和高效。我非常喜歡 tmux 的這些方面:

  • 垂直分割視窗,當然水平也是可以的
  • vi 或 emacs 按鍵繫結模式
  • 有多個粘貼緩衝,可完全由按鍵進行選取、複製、以及粘貼操作
  • 配置很容易,尤其是狀態行
  • 指令碼化,通過指令碼可以方便的控制 tmux 會話
  • 有預設布局,可搜尋視窗,自動命名視窗名稱
  • 文檔清晰、詳盡
更改預設按鍵首碼

從 screen 切換到 tmux 十分平滑,tmux 的按鍵設定與 screen 大都相同,只是其預設按鍵首碼為 Ctrl-b。為了延續在 screen 中的使用習慣,我將其更改為 Ctrl-a。將下列內容加到 $HOME/.tmux.conf 中即可:

set -g prefix ^a
unbind ^b
bind a send-prefix

按鍵綁定

我還在 .tmux.conf 中定義了以下按鍵綁定:

  • 水平或垂直分割視窗  (C+A+ :split-window + v/h)

    unbind '"'bind - splitw -v # 分割成上下兩個視窗unbind %bind | splitw -h # 分割成左右兩個視窗
  • 選擇分割的窗格
    bind k selectp -U # 選擇上窗格bind j selectp -D # 選擇下窗格bind h selectp -L # 選擇左窗格bind l selectp -R # 選擇右窗格
  • 重新調整窗格的大小
    bind-key J resize-pane -D 10bind-key K resize-pane -U 10bind-key H resize-pane -L 10bind-key L resize-pane -R 10

  • 交換兩個窗格
    bind ^u swapp -U # 與上窗格交換 Ctrl-ubind ^d swapp -D # 與下窗格交換 Ctrl-d
  • 執行命令,比如看 Manpage、查 Perl 函數
    bind m command-prompt "splitw -h 'exec man %%'"bind @ command-prompt "splitw -h 'exec perldoc -f %%'"
定製狀態行

狀態行左邊預設就很好了,我對右邊定製了一下,顯示 uptime 和 loadavg:

set -g status-right "#[fg=green]#(uptime.pl)#[default] • #[fg=green]#(cut -d ' ' -f 1-3 /proc/loadavg)#[default]"

下面兩行設定狀態行的背景和前景色彩:

set -g status-bg black
set -g status-fg yellow

預設啟動應用

當 tmux 啟動時,可以預設啟動一些應用:

new -s work  # 建立名為 work 的會話,並啟動 mutt
neww rtorrent # 啟動 rtorrent
neww vim # 啟動 vim
neww zsh
selectw -t 3 # 預設選擇標號為 3 的視窗

 

在視窗中 C+a+? 命令協助

複製與粘貼操作
  1. 按 C-a [ 進入複製模式,如果有設定 setw -g mode-keys vi 的話,可按 vi 的按鍵模式操作。移動至待覆制的文本處,按一下空格,結合 vi 移動命令開始選擇,選好後按斷行符號確認。
  2. 按 C-a ] 粘貼已複製的內容。

 

 

重新命名一個視窗:rename-window name

 

 

轉:http://www.osmsg.com/2011/04/from-screen-to-tmux/

 

更多:

http://wiki.freebsdchina.org/software/t/tmux

http://www.dayid.org/os/notes/tm.html

 

 

 

常用命令:tmux #開啟tmux<br />tmux ls #顯示已有tmux列表(C-b s)<br />tmux attach-session -t 數字 #選擇tmux<br />C-b c 建立一個新的視窗<br />C-b n 切換到下一個視窗<br />C-b p 切換到上一個視窗<br />C-b l 最後一個視窗,和上一個視窗的概念不一樣喲,誰試誰知道<br />c-b w 通過上下鍵選擇當前視窗中開啟的會話<br />C-b 數字 直接跳到你按的數字所在的視窗<br />C-b & 退出當前視窗<br />C-b d 臨時斷開會話 斷開以後,還可以連上的喲:)<br />C-b " 分割出來一個視窗<br />C-b % 分割出來一個視窗<br />C-b o 在小視窗中切換<br />C-b (方向鍵)<br />C-b ! 關閉所有小視窗<br />C-b x 關閉當前游標處的小視窗<br />C-b t 鐘錶<br />C-b pageup/pagedow 
1.修飾鍵      修飾鍵就是tmux的主鍵.當你在tmux環境下按下這個鍵的時候,tmux就會把你後面輸入的指令,解析成它內建的功能.tmux預設的修飾鍵是ctrl+b(同步選取ctrl和b,在後面將直接用小寫c-b代替).這相當於screen的ctrl+a.同時用過兩個工具的人總會爭論ctrl+a和ctrl+b的合理性.估計爭論的也就是emacs和vi黨.我就很不理解.這兩撥人只用編輯器,不用指令嗎?因為他們似乎不知道在bash環境裡:ctrl+a代表跳到命令的開始,而ctrl+b代表往回移動一格.從這一點講,筆者覺得用c-b沒啥不好的.因為你按著c-b不放,在bash環境裡的功能依然有效:)2.擷取快速鍵協助      前面沒有提,在這裡要指出的一點就是,當你按c-b的時候,我希望你已經進入"tmux環境"了.進入的方法很簡單.直接在命令列輸入:tmux就可以了.沒有的話,安裝唄.幸運的是ubuntu9.10裡已經整合了tmux.雖然不是最新版,但是免去了編譯的麻煩:)現在按C-b ?      接下來要介紹的東西,就是這裡面列出來的,一些普遍有用的東東.查看上面或者下面的內容,直接pageup,pagedown就可以了:)退出請按q(這個百試不爽,幾乎是和tmux互動的時候,都可以用這個退出)      3.常用快速鍵      c-b c 建立一個新的視窗      在你正後悔當前視窗被一個指令佔用的時候,這個快速鍵會解燃眉之急喲.當前視窗在工作列會顯示*      如,現在正在操作的視窗就是3了      C-b n 切換到下一個視窗      C-b p 切換到上一個視窗      C-b l 最後一個視窗,和上一個視窗的概念不一樣喲,誰試誰知道      c-b w 通過上下鍵選擇當前視窗中開啟的會話      C-b 數字 直接跳到你按的數字所在的視窗      c-b & 退出當前視窗(個人覺得這個沒多大用,因為筆者習慣上c-d退出bash.當然了,如果你確保其它視窗沒有有用的程式正在運行,試試這個命令也不錯)      C-b d 臨時斷開會話 斷開以後,還可以連上的喲:)      4.分割視窗      vim中,可以直接:!命令,來執行命令,或者直接把命令的結果讀到當前的編輯器.很多時候我們就是有這樣一種需要,看一下上次的執行結果,而不想通過切換來實現.最初看到官方網站的圖片可以,橫著分,可以豎著分,挺酷的.不過到現在筆者也還不知道怎麼緊著分:)      c-b " 分割出來一個視窗      c-b o 在小視窗中切換 這種方法一次只能切換一次,再想切換再c-b o,適合兩個視窗的時候使用.如果在當前視窗分割了好多小視窗的話,就要用下面的兩個指令了.      c-b (方向鍵)上 上一個視窗      c-b (方向鍵)下 下一個視窗  要指出的是,按一次c-b,可以上上下下的選,直到選到你想要的那個視窗,這點和c-b o不一樣噢.      c-b ! 關閉所有小視窗      c-b x 關閉當前游標處的小視窗      5.切換到其它的會話      上面提到的都是視窗的概念,是在一個會話裡建立多個視窗,在一個視窗裡建立多個小視窗.而現在說是的會話的概念.你每次執行tmux就會建立一個會話,c-b d的時候就會儲存退出一個會話.      c-b s 選擇attach的會話      注意看喲,和顯示的不一樣      6.修改當前視窗名稱      tmux允許你給不同的視窗指定不同的名字      c-b , 修改當前視窗名稱      是不是將視窗的名字改成rainbird了?      7.顯示一個鐘錶      其實簡單的時候沒啥大用處,就是一個屏保的作用,不過你可以通過設定設定檔,使從鐘錶退出來的時候要輸入密碼:)      c-b t 鐘錶      8.查看記錄      這個是困擾了筆者很長時間的一個功能,因為一些命令執行的時候,顯示結果總會超過一屏,而筆者不知道怎麼向上翻頁以看到前面的東西,直到後來才不經意的發現是用:      C-b pageup/pagedown      退出的話,當然還是用q了      9.複製粘貼:      複製東西在使用GNOME Terminal的時候效果不大明顯,因為你可以通過滑鼠上下翻頁,可以左鍵選擇東西,右鍵複製或者粘貼.單把這一點拿出來,是為了說明一種猜測和一種高效的移動習慣.在看tmux協助的時候,筆者注意到,有說按完c-b以後,通過[進入複製模式.但是進來以後呢?介面類似翻看以前的記錄.研究的許久才這樣整明白,如果要使用這個功能,你得知道c-b :可以進入tmux的命令模式,然後可以設定一些指令.比如說,修改模式鍵setw
mode-keys vi.這樣你就把當前模式改成了vi.再進入複製模式(c-b [)是不是可以通過j,k在字元裡上下移動就像在vim裡一樣?      通過看協助,vi和emacs的模式對照表           Function                vi          emacs           Start of line           0 or ^      C-a           Clear selection         Escape      C-g           Copy selection          Enter       M-w           Cursor down             j           Down           End of line             $           C-e           Cursor left             h           Left           Next page               C-f         Page down           Next word               w           M-f           Previous page           C-u         Page up           Previous word           b           M-b           Quit mode               q           Escape           Cursor right            l           Right           Start selection         Space       C-Space           Cursor up               k           Up      你發現什麼?我們之前上下翻頁用的page up和page down,也可以用上下鍵.是不是說明了我們這前用的模式就是emacs呢?因為我們如果用ctrl+space選擇東西的話,是永遠不會成功呢,因為會被系統優先搶佔,因為這兩個鍵被定義到了切換IME.所以,如果你想通過鍵盤用複製的功能的話,你最好先把模式改成vi,然後通過vi裡支援的鍵選擇.空格是選擇的起點,然後上下或者左右移動選擇到終點,斷行符號,就把內容複寫了.這樣的一個好處就是你可以複製到不在當前螢幕裡的東西!
            10.常用參數      最後說一下tmux本身常用的幾個參數吧:)      tmux ls 列出已有會話(list-sessions)      tmux a串連到這前斷開的會話(attach-session) 預設會串連列出的id最小的會話,你也可以指定你想串連到哪個會話:tmux a -t 1來串連到第一個會話      tmux new建立新的會話(new-window) 當然了,不加這個參數也是會建立新會話的:)      關於tmux的介紹到這裡就結束了.tmux是個利器,而這個利器是不是也成為你手上的利刃取決於你花多少心思來運用它.以上的一些技巧,你只會一些基本的指令,就可以大大提高工作效率了,還等什麼?趕快行動起來吧:)
tmux new-session -s session-nametmux kill-session -t session-namectrl + a + : rename-window name

tmux kill-session -t session-name

ctrl + a + : rename-window name

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.