當進行測試或者查看日誌文件時,因爲內容較多,每每須要進行上下翻滾查找。工具
按下 PREFIX [
進入複製模式,而後能夠在屏幕上使用方向鍵進行移動了。要想使用 Vim 的各類移動鍵進行移動,能夠在 .tmux.conf 中配置:測試
setw -g mode-keys vi
使用 PREFIX [
後進入的複製模板,至關於 Vim 中使用 ESC
進入的 Normal 模式,在其中能夠用 hjkl
,wbfF
, Ctrl-b
等進行移動,使用 ?/
等進行查詢等。.net
退出複製模式默認使用回車鍵。日誌
在複製模式下,按下空格鍵進入文本選取狀態,而後使用 Vim 的移動命令進行移動選取,當按下回車鍵後,所選取的文本將被複制到一個粘貼緩衝區。code
在複製模式下,按 PREFIX ]
將當前粘貼緩衝區中的內容粘貼出來。orm
將一個窗格里可見的全部內容複製到一個粘貼緩衝區中:先按 PREFIX :
進入命令模式,而後運行 capture-pane
命令。htm
顯示緩衝區的內容:ip
$ tmux show-buffer
使用 save-buffer 命令將緩衝區中的內容保存到一個文件中,例如,能夠先將一個窗格中的全部內容複製到緩衝區,而後將緩衝區的內容保存到文件中:資源
$ tmux capture-pane && tmux save-buffer buffer.txt
或者在 tmux 會話的命令模式下:get
:capture-pane;save-buffer buffer.txt
能夠將這兩條命令映射成一個快捷鍵。
tmux 的緩衝區和系統的不一樣,它的緩衝區相似一個堆棧,新複製的內容在堆棧的頂部,而不會直接覆蓋已存在的緩衝區內容。
當按下 PREFIX ]
時,默認問題粘貼最頂部的緩衝區的內容,即緩衝區 0 的內容,也能夠在命令模式下經過 choose-buffer 命令選取要粘貼的緩衝區,選取後按回車鍵完成粘貼。
這些緩衝區內容在不一樣的會話間均可以共享。
將複製粘貼操做參照 Vim 的模式進行改造,如按 ESC
鍵切換複製模式,使用 y
進行復制,使用 v
開始選取文本,使用 p
進行粘貼:
unbind [ bind Escape copy-mode unbind p bind p paste-buffer bind -t vi-copy 'v' begin-selection bind -t vi-copy 'y' copy-selection
在 Ubunut 上,經過 xclip 工具能夠將 tmux 緩衝區與系統的粘貼板整合起來,從而使得程序間的文本複製粘貼更加容易。
安裝 xclip :
$ sudo apt-get install xclip
而後能夠將 tmux 的 save-buffer 和 set-buffer 命令與 xclip 結合起來。
將當前緩衝區的內容複製到系統的粘貼板,能夠在 .tmux.conf 文件中進行綁定:
bind C-c display "Copied" \; run "tmux save-buffer - | xclip -i -sel clipboard"
將系統粘貼板中的內容粘貼到當前位置:
bind C-v run "tmux set-buffer \"$(xclip -o -sel clipboard)\"; tmux paste-buffer"
快捷鍵 | 描述 |
---|---|
PjREFIX [ | 進入複製模式 |
PREFIX ] | 粘貼當前緩衝區中的內容 |
PREFIX = | 先列出全部粘貼緩衝區的內容,而後粘貼選中的緩衝區內容 |
命令 | 描述 |
---|---|
show-buffer | 顯示當前緩衝區的內容 |
capture-pane | 將當前窗格中的全部可見內容獲得最頂部的緩衝區 |
list-buffers | 列出全部緩衝區的內容 |
choose-buffer | 列出全部緩衝區,選取其中一個進行粘貼 |
save-buffer [filename] | 將緩衝區的內容保存到文件 |
參考資源: