在有 X 伺服器的機器上,我使用selection
剪貼簿在 GUI 和終端程式之間同步複製/貼上。現在我有一個沒有 X 的伺服器,我想在終端應用程式之間同步複製/貼上,例如zsh
和。稍後,我希望進一步將該剪貼簿與我用來透過 SSH 連接到 Linux 伺服器的 Mac 的系統剪貼簿同步。vim
tmux
這樣的設定可能嗎?具體來說,
Linux 的共用剪貼簿是否可以在不運行 X11 的情況下跨終端應用程式同步複製/貼上?
有類似的工具
xsel
嗎xclip
?更好的是,是否有像這樣的工具可以在運行和不運行 X 伺服器的情況下工作,允許我在這兩種情況下使用相同的配置/點文件?
最後,我承認這是一個獨立的問題,這個剪貼簿如何與 SSH 用戶端的剪貼簿同步?
答案1
終端應用程式沒有通用的剪貼簿。 tmux、zsh 和 vim 都有自己的剪貼簿。
tmux 有一種機制,可以使用轉義序列(選項)將複製的文字傳送到外部終端set-clipboard
,並讀取剪貼簿 ( refresh-client -l
)。只有 X 終端支援此功能,並非所有終端都支援。
tmux 也支援相同的轉義序列 (OSC 52),讓 tmux 內的應用程式讀取最新的貼上緩衝區(如果set-clipboard
設定為on
)。然而,據我所知,很少有應用程式使用它。
tmux 還允許您使用命令將貼上緩衝區保存到檔案或標準輸出save-buffer
,並使用命令載入它們load-buffer
。這可能比 OSC 52 更容易使用。
我希望可以為 zsh 和 vim 編寫腳本來使用這些功能之一或其他功能來設定和檢索其剪貼簿。
所以是的,你可以通過運行 tmux 內的所有內容來將一些東西組合在一起,使用 tmux 保存剪貼板並編寫一些腳本來從 vim、zsh 等獲取和設置它,但我認為你需要自己做,有沒有現有的解決方案。