Vimを使用してX11(コピー)クリップボードにコピーする場合は、"+y
Vimが開いている間のみコンテンツを貼り付けることができます。理由は次のとおりです。
この問題は、Xorgが複製に保守的なアプローチを使用しているために発生します。ユーザーが選択またはコピーを実行すると、元のデータへの参照のみがコピーされます。ユーザーが貼り付けを要求するまで、ソースプログラムは実際のデータを取得しません。これにより、不要なデータ転送が大幅に節約されますが、クリップボードを他の場所に保存しない閉じたプログラムからデータを取得できないというコストが発生します。
つまり、Vimを終了した後に参照が無効になるため、X11はVimからデータを取得できなくなります。
X11の「制限」を克服し、Vimが終了したら、たとえばクリップボードマネージャを使用してX11(コピー)クリップボードを貼り付ける方法は?
最終的に私が望むのは、次のような動作です。
FreedesktopのClipboardManager仕様はこの問題を解決することができます。 Gnome設定デーモンは、すべてのコピーと貼り付けを処理するUbuntuの基本コンポーネントであり、アプリケーションはクリップボードの内容を安全な場所に保存するように明示的に要求できます。アプリケーションは終了する前に保存を要求し、それに従います。終了する前にすべてが解決され、データは失われません。。
clipmenu
推奨されますが、Debian パッケージとしては使用できません。また、クリップボードは終了時にautocutsel
使用または保存されません。autocutsel -selection PRIMARY -fork
autocutsel -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
- vimの実行
- 次の順序でワイヤを引いてください"+yy
- vim 終了
- vimの実行
- 次に行を貼り付ける"+p
第1ターミナルのテスト2
- vimの実行
- 次の順序でワイヤを引いてください"+yy
- vim 終了
- 2番目の端末でvimを実行します。
- 次に行を貼り付ける"+p
第1ターミナルのテスト3
- vimの実行
- 次の順序でワイヤを引いてください"+yy
- vim 終了
- 走る
cat
- 次に行を貼り付けるCTRL+Shift+v
vim.gtk3を使用すると、すべてのテストが機能します。
[編集3]リンクを追加アシキャストデモ
ウェイランドではなくX11を使用しています
echo $XDG_SESSION_TYPE
x11