Vim

vim/gvim 未能將 X11 剪貼板放入寄存器“+ 或”*?

  • March 16, 2015

由於標準 vino 伺服器缺乏安全性,我切換到在我的 linux(使用 Xubuntu 14.04) 機器上使用x11vnc ,在 Windows 端使用SSVNC

使用vino,從windows到Linux和windows的剪切和粘貼,在兩個方向上都是不穩定的(1)但是當它工作時,它適用於每個程序;我可以毫無問題地使用vim寄存器。"+我跑(2)

autocutsel -fork 

通常這樣“中間點擊”和 ctrl-c/v 選擇是相同的。

現在我使用 x11vnc(用: 呼叫x11vnc -forever -repeat -safer -usepw -ssl -autoport 6000)來建立一個安全、加密的連接,出現了一個問題:

  1. 我可以在 Windows 上複製並粘貼到遠端 linux 終端、libreoffice 等。沒有任何問題,雙向。
  2. vim, 或gvim, 任何粘貼的嘗試"+p"*pE353: Nothing in register *
  3. 再次在vimorgvim中,相反的方法確實有效:如果我"+yy可以將東西粘貼到 Windows 端。

任何人都知道這個問題嗎?奇怪的是,粘貼在我檢查的所有地方都有效,但在vim……

Package                 Installed       Previous        Now             State
=======================-===============-===============-===============-=====
vim                     2:7.4.052-1ubuntu3  2:7.4.052-1ubuntu3  2:7.4.052-1ubuntu3  install
vim-gnome               2:7.4.052-1ubuntu3  2:7.4.052-1ubuntu3  2:7.4.052-1ubuntu3  install

腳註:

(1) 現在找不到bug — 報告了。一段時間後它停止工作。

(2) 我試過有無。沒有變化。

由於我不知道您使用的是哪個 x11vnc(我有三個不同的版本,還有其他版本),所以這是一個解決此特定問題的教程。

首先是了解所涉及的剪貼板。在大多數情況下,其中涉及四個。(如果您使用剪貼板管理工具,更多可能。) X11 定義了三個剪貼板:主要、次要和剪貼板。Secondary 很少使用,(幾乎可以肯定不是你的問題)所以我們將忽略它。使用中鍵粘貼(xterm 等)的應用程序通常使用主剪貼板。執行 Windows 樣式粘貼(點擊編輯、點擊粘貼或控制 V)的應用程序有時僅使用剪貼板剪貼板。一些應用程序兩者兼而有之(Google瀏覽器通過中鍵從主要粘貼和從剪貼板通過控制項 V 粘貼)。接下來是 VNC 剪貼板(只有一個),還有 windows 剪貼板。(如果您使用的是在 X11 上執行的 vnc 查看器,事情會變得更加複雜,但在考慮到這一點之後,這將是有道理的。) VNC 剪貼板的特殊之處在於它跟踪其他剪貼板的各種更新,以使它們保持最新。如果您忽略主剪貼板,這相當簡單,因為最近更新的剪貼板被複製到所有其他剪貼板。挑戰在於主剪貼板的期望行為沒有很好地定義。我已經看到了各種 vnc 實現的以下行為:

  1. 忽略主要,僅使用剪貼板。
  2. 忽略剪貼板,僅使用主要的。
  3. 使用最新的 unix 到 windows 副本,copy to both for windows 到 unix 副本。
  4. 盡量聰明:在使用剪貼板之前只使用主要的,然後只使用剪貼板。
  5. 嘗試更聰明:使用主要直到剪貼板被更改然後忽略主要直到從視窗發生變化,然後使用下一個更改,在剪貼板使用後再次忽略主要。
  6. 嘗試變得更聰明。(我從來沒有弄清楚他們想用這個做什麼,但通常它做了正確的事情)

接下來是工具。我認為有兩個工具對於調試剪貼板問題至關重要:文本編輯器(記事本可以很好地解決這個問題)和 xclip。Windows 剪貼板查看器很好,但不是必需的。

現在的過程:從您正在排除故障的組中的每個應用程序中,選擇並複制一些文本,檢查所有三個可訪問剪貼板的狀態。(vnc 剪貼板很難直接查看,也沒有直接用處,因為它通常不儲存數據,只儲存元數據。)回答這些問題:每個應用程序使用哪個剪貼板?他們使用什麼順序?

希望這是足夠的資訊來幫助您入門。

引用自:https://unix.stackexchange.com/questions/128331