Tmux 學習摘要4--處理文本和緩衝區

在複製模式下移動

當進行測試或者查看日誌文件時,因爲內容較多,每每須要進行上下翻滾查找。工具

按下 PREFIX [ 進入複製模式,而後能夠在屏幕上使用方向鍵進行移動了。要想使用 Vim 的各類移動鍵進行移動,能夠在 .tmux.conf 中配置:測試

setw -g mode-keys vi

使用 PREFIX [ 後進入的複製模板,至關於 Vim 中使用 ESC 進入的 Normal 模式,在其中能夠用 hjklwbfF, 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

在 Linux 上使用系統粘貼板

在 Ubunut 上,經過 xclip 工具能夠將 tmux 緩衝區與系統的粘貼板整合起來,從而使得程序間的文本複製粘貼更加容易。

安裝 xclip

$ sudo apt-get install xclip

而後能夠將 tmux 的 save-bufferset-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] 將緩衝區的內容保存到文件

參考資源:

tmux: Productive Mouse-Free Development

相關文章
相關標籤/搜索