Tmux 學(xué)習(xí)摘要4--處理文本和緩沖區(qū)

在復(fù)制模式下移動

當(dāng)進(jìn)行測試或者查看日志文件時,由于內(nèi)容較多,往往需要進(jìn)行上下翻滾查找。

按下 PREFIX [ 進(jìn)入復(fù)制模式,然后可以在屏幕上使用方向鍵進(jìn)行移動了。要想使用 Vim 的各種移動鍵進(jìn)行移動,可以在 .tmux.conf 中配置:

setw -g mode-keys vi

使用 PREFIX [ 后進(jìn)入的復(fù)制模板,相當(dāng)于 Vim 中使用 ESC 進(jìn)入的 Normal 模式,在其中可以用 hjkl,wbfF, Ctrl-b 等進(jìn)行移動,使用 ?/ 等進(jìn)行查詢等。

退出復(fù)制模式默認(rèn)使用回車鍵。

復(fù)制粘貼文本

在復(fù)制模式下,按下空格鍵進(jìn)入文本選取狀態(tài),然后使用 Vim 的移動命令進(jìn)行移動選取,當(dāng)按下回車鍵后,所選取的文本將被復(fù)制到一個粘貼緩沖區(qū)。

在復(fù)制模式下,按 PREFIX ] 將當(dāng)前粘貼緩沖區(qū)中的內(nèi)容粘貼出來。

獲取窗格內(nèi)容

將一個窗格里可見的所有內(nèi)容復(fù)制到一個粘貼緩沖區(qū)中:先按 PREFIX : 進(jìn)入命令模式,然后運行 capture-pane 命令。

顯示和保存緩沖區(qū)

顯示緩沖區(qū)的內(nèi)容:

$ tmux show-buffer

使用 save-buffer 命令將緩沖區(qū)中的內(nèi)容保存到一個文件中,例如,可以先將一個窗格中的所有內(nèi)容復(fù)制到緩沖區(qū),然后將緩沖區(qū)的內(nèi)容保存到文件中:

$ tmux capture-pane && tmux save-buffer buffer.txt

或者在 tmux 會話的命令模式下:

:capture-pane;save-buffer buffer.txt

可以將這兩條命令映射成一個快捷鍵。

使用多個緩沖區(qū)

tmux 的緩沖區(qū)和系統(tǒng)的不同,它的緩沖區(qū)類似一個堆棧,新復(fù)制的內(nèi)容在堆棧的頂部,而不會直接覆蓋已存在的緩沖區(qū)內(nèi)容。

當(dāng)按下 PREFIX ] 時,默認(rèn)問題粘貼最頂部的緩沖區(qū)的內(nèi)容,即緩沖區(qū) 0 的內(nèi)容,也可以在命令模式下通過 choose-buffer 命令選取要粘貼的緩沖區(qū),選取后按回車鍵完成粘貼。

這些緩沖區(qū)內(nèi)容在不同的會話間都可以共享。

重新綁定復(fù)制和粘貼鍵

將復(fù)制粘貼操作參照 Vim 的模式進(jìn)行改造,如按 ESC 鍵切換復(fù)制模式,使用 y 進(jìn)行復(fù)制,使用 v 開始選取文本,使用 p 進(jìn)行粘貼:

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 上使用系統(tǒng)粘貼板

在 Ubunut 上,通過 xclip 工具可以將 tmux 緩沖區(qū)與系統(tǒng)的粘貼板整合起來,從而使得程序間的文本復(fù)制粘貼更加容易。

安裝 xclip

$ sudo apt-get install xclip

然后可以將 tmux 的 save-bufferset-buffer 命令與 xclip 結(jié)合起來。

將當(dāng)前緩沖區(qū)的內(nèi)容復(fù)制到系統(tǒng)的粘貼板,可以在 .tmux.conf 文件中進(jìn)行綁定:

bind C-c display "Copied" \; run "tmux save-buffer - | xclip -i -sel clipboard"

將系統(tǒng)粘貼板中的內(nèi)容粘貼到當(dāng)前位置:

bind C-v run "tmux set-buffer \"$(xclip -o -sel clipboard)\"; tmux paste-buffer"

快捷鍵

快捷鍵 | 描述
----------|
PjREFIX [ | 進(jìn)入復(fù)制模式
PREFIX ] | 粘貼當(dāng)前緩沖區(qū)中的內(nèi)容
PREFIX = | 先列出所有粘貼緩沖區(qū)的內(nèi)容,然后粘貼選中的緩沖區(qū)內(nèi)容

命令

命令 | 描述
-----------------------|
show-buffer | 顯示當(dāng)前緩沖區(qū)的內(nèi)容
capture-pane | 將當(dāng)前窗格中的所有可見內(nèi)容得到最頂部的緩沖區(qū)
list-buffers | 列出所有緩沖區(qū)的內(nèi)容
choose-buffer | 列出所有緩沖區(qū),選取其中一個進(jìn)行粘貼
save-buffer [filename] | 將緩沖區(qū)的內(nèi)容保存到文件

參考資源:

tmux: Productive Mouse-Free Development

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容