如何在沒有X的伺服器上同步終端應用程式的剪貼簿?

如何在沒有X的伺服器上同步終端應用程式的剪貼簿?

在有 X 伺服器的機器上,我使用selection剪貼簿在 GUI 和終端程式之間同步複製/貼上。現在我有一個沒有 X 的伺服器,我想在終端應用程式之間同步複製/貼上,例如zsh和。稍後,我希望進一步將該剪貼簿與我用來透過 SSH 連接到 Linux 伺服器的 Mac 的系統剪貼簿同步。vimtmux

這樣的設定可能嗎?具體來說,

  • Linux 的共用剪貼簿是否可以在不運行 X11 的情況下跨終端應用程式同步複製/貼上?

  • 有類似的工具xselxclip

  • 更好的是,是否有像這樣的工具可以在運行和不運行 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 等獲取和設置它,但我認為你需要自己做,有沒有現有的解決方案。

相關內容