【Linux 工具箱 - Tmux】如何在pane進行複製貼上?

2023/08/03閱讀時間約 3 分鐘
raw-image

圖片來源...

Tmux對於常常在使用Linux或者Mac作業系統的朋友來說是一個非常方便的工具, 可以讓我們工作效率提升, 快速切換多個終端畫面進行多工處理, 但使用時難免遇到一些狀況跟需求, 而這次分享的主要是如何複製貼上, 相信這也是大部分使用者會遇到的情境, 因此進行經驗的分享與交流。

輸入指令的快捷鍵: Ctrl + b之後按下「:」。

開啟輸入框之後, 鍵入「mouse on」, 讓畫面可以透過游標進行選取。

raw-image

圖片來源...

在Tmux複製並貼上

之後直接將游標移動到需要的文字段落(通常是LOG)上選取文字範圍, 選完後, 該文字段落就已經被儲存到黏貼簿的緩衝區。

raw-image

圖片來源...


切換到另外的Panel進行貼上

我們切換到Tmux之下的另外一個Panel之後就能夠使用「Ctrl + b + ]」進行貼上了。

raw-image

圖片來源...

那如何貼到Linux系統上呢

Tmux的複製模式預設只會將文本複製到Tmux剪貼簿上, 那如果要貼到系統的話, 則需要額外的套件「xclip」, 它可以做為Tmux與系統之間的橋樑, 讓我們的資料順利通行。

首先進行安裝「xclip」

sudo apt-get install xclip

接著透過以下指令將tmux複製到系統剪貼簿。

tmux show-buffer | xclip -selection clipboard

我們開出兩個視窗, 分別為系統視窗與Tmux視窗來實際試試看。

左邊的視窗, 我們很單純的用滑鼠將文字框起來, 當放開的那一剎那就會自動複製到Tmux剪貼不了, 接著我們在右邊分別執行:

# 透過xclip讓剪貼簿資料互通
tmux show-buffer | xclip -selection clipboard

# 貼上
ctrl + shift + v
raw-image

圖片來源...

But…這還是有點繁瑣, 有沒有更便利的技巧呢?

上述的操作總共會進行三個動作, 分別為: 「滑鼠選文字 → 打指令 → 貼上」, 我們想要讓流程更加簡化, 只需要「滑鼠選文字 → 貼上」, 行不行? 就來試試看吧!

我們將以下的代碼附加到Tmux配置文件中

# 編輯配置檔
vi ~/.tmux.conf

# 加入以下兩行
bind C-c run "tmux save-buffer - | xclip -i -sel clipboard"

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

接著重啟一下tmux即可。

# 假設已經開啟tmux panel的狀況之下
ctrl + b + :
restart-server

# 假設尚未開啟任何tmux panel
tmux new -s xxx

最後直接使用ctrl + c 複製, ctrl + v 貼上即可。

Issue

unknown option: mode-mouse

# ctrl + b + : 
:set-option -g mouse on

結語

使用tmux的過程中雖然常常分割畫面或者切換非常的方便, 隨著我們用的越深入時,有時候追查LOG也需要將LOG複製一番進行分析, 一直找不到時間好好的設定一下這個部份, 趁著空閒親自設定過一遍並將過程整理分享給剛好遇到狀況的朋友。

喜歡撰寫文章的你,不妨來了解一下:

Web3.0時代下為創作者、閱讀者打造的專屬共贏平台 — 為什麼要加入?

歡迎加入一起練習寫作,賺取知識

91會員
260內容數
哈囉,我是阿Han,是一位 👩‍💻 軟體研發工程師,喜歡閱讀、學習、撰寫文章及教學,擅長以圖代文,化繁為簡,除了幫助自己釐清思路之外,也希望藉由圖解的方式幫助大家共同學習,甚至手把手帶您設計出高品質的軟體產品。
留言0
查看全部
發表第一個留言支持創作者!