たとえば、Vimを閉じたときに後でコンテンツを貼り付けることができるように、X11(コピー)クリップボードの内容を保存する方法は?

たとえば、Vimを閉じたときに後でコンテンツを貼り付けることができるように、X11(コピー)クリップボードの内容を保存する方法は?

Vimを使用してX11(コピー)クリップボードにコピーする場合は、"+yVimが開いている間のみコンテンツを貼り付けることができます。理由は次のとおりです。

~からUbuntu Wiki:クリップボードの永続性:

この問題は、Xorgが複製に保守的なアプローチを使用しているために発生します。ユーザーが選択またはコピーを実行すると、元のデータへの参照のみがコピーされます。ユーザーが貼り付けを要求するまで、ソースプログラムは実際のデータを取得しません。これにより、不要なデータ転送が大幅に節約されますが、クリップボードを他の場所に保存しない閉じたプログラムからデータを取得できないというコストが発生します。

つまり、Vimを終了した後に参照が無効になるため、X11はVimからデータを取得できなくなります。

X11の「制限」を克服し、Vimが終了したら、たとえばクリップボードマネージャを使用してX11(コピー)クリップボードを貼り付ける方法は?

最終的に私が望むのは、次のような動作です。

FreedesktopのClipboardManager仕様はこの問題を解決することができます。 Gnome設定デーモンは、すべてのコピーと貼り付けを処理するUbuntuの基本コンポーネントであり、アプリケーションはクリップボードの内容を安全な場所に保存するように明示的に要求できます。アプリケーションは終了する前に保存を要求し、それに従います。終了する前にすべてが解決され、データは失われません。

clipmenu推奨されますが、Debian パッケージとしては使用できません。また、クリップボードは終了時にautocutsel使用または保存されません。autocutsel -selection PRIMARY -forkautocutsel -selection CLIPBOARD -fork

ベストアンサー1

そのページおっしゃった日付は2010年です。

私はvim 8.1を使用していますが、うまくいきます。

GUIがインストールされているvimバージョンを使用していますか?表示有効な機能を使用してください:version+clipboard表示する必要があります。

これをテストするためにインストールしましたvim-gtk3(vim-tinyではクリップボード機能は有効になっていません-clipboard。)

Ubuntu 20.04.02を使用しています


---修正--コメントに返信する

私は慎重に確認しました。

  • vim.gtk3 - 有効

  • vim.tiny - 失敗

  • 私は次の順序で行を引っ張ります: "+yy

  • 次の順序で貼り付けました。 "+p

:バージョン
VIM - Vi改善された8.1(2018年5月18日コンパイル、2021年9月20日11:42:42)
含まれているパッチ: 1-2269
編集者[Eメール保護]
コンパイラ[Eメール保護]

[2 番目の編集] 最初の 2 つのテストと後続の 3 番目のテストの追加の説明です。

最初は2つのテストをしました。

第1ターミナルのテスト1

  1. vimの実行
  2. 次の順序でワイヤを引いてください"+yy
  3. vim 終了
  4. vimの実行
  5. 次に行を貼り付ける"+p

第1ターミナルのテスト2

  1. vimの実行
  2. 次の順序でワイヤを引いてください"+yy
  3. vim 終了
  4. 2番目の端末でvimを実行します。
  5. 次に行を貼り付ける"+p

第1ターミナルのテスト3

  1. vimの実行
  2. 次の順序でワイヤを引いてください"+yy
  3. vim 終了
  4. 走るcat
  5. 次に行を貼り付けるCTRL+Shift+v

vim.gtk3を使用すると、すべてのテストが機能します。


[編集3]リンクを追加アシキャストデモ

ウェイランドではなくX11を使用しています

echo $XDG_SESSION_TYPE
x11

おすすめ記事