2013-09-28 46 views
1

我在遠程機器上的ssh連接上使用Vim內部的tmux。我從多個地點訪問遠程服務器,包括工作和家中。這通常會導致陳舊的$ DISPLAY變量和相關問題,其中大部分我已經解決,除了一個:有沒有辦法讓Vim重新連接到不同的X服務器?

如果我有一個vim會話已經打開,有沒有辦法改變它連接到哪個X服務器而不關閉和重新開放它?我需要能夠做到這一點,所以我可以使用X剪貼板複製Vim中的文本片段。我通常會保留多個垂直分割,換行符和行號,因此通過tmux執行此操作通常是一個巨大的麻煩,並且寧願使用vim來完成。

回答

2

如果使用X的唯一目的是傳輸大量文本,請考慮使用scp代替。

從VIM內標記您感興趣的線路,並做:w /tmp/foo

從殼(或使用ctrl-z掛起Vim; bg)做

scp [email protected]:/tmp/foo /some/local/directory 
+0

不完全。我在原來的問題上誤導了我;我其實經常想從vim複製一小段文本。我通常保持垂直分割,換行和行號,所以通過tmux執行此操作通常是一個巨大的麻煩。 –

3

您可以使用xpra顯示運行X11程序(特別是vim)在不同的X11服務器上。

此程序可用於X11程序,如GNU屏幕或終端程序的tmux do。 xpra提供了一個用於運行程序的X服務器,並且它自身充當X服務器的X客戶端以供用戶顯示。

你提到你正在通過tmux運行vim;你應該可以在tmux之外運行vim並直接使用xpra。據我所知,該程序必須從一開始就通過xpra運行。

+0

不太確定這是否是我想要的... xpra如何幫助我將Vim從不同的(可能已經死亡/斷開連接的)X服務器切換到我要連接的服務器? –

+0

我已經擴展了我的答案。它就像終端之間的tmux切換一樣工作。 –

相關問題