PuTTY (xterm は関係ありません) 内で vim を取得して Windows クリップボードとやり取りする方法を見つけようとしています。
これまでの私の研究は、それが不可能であることを示しています。xterm にはクリップボード操作のターミナル エスケープ シーケンスがありますが、xterm ではデフォルトで無効になっています。PuTTY ではおそらくまったく実装されていません。これはおそらくセキュリティ上の理由によるものです。リモート システムにクリップボードへのフル アクセスを許可したくないからです。
xterm_clipboard
とにかく、それがvimの機能が使用することになっているかどうかはわかりません。これまでの私の検索では、有効になっていないことに不満を言っている人や、実際に実装されている方法ではなく、有効になっている vim を取得する方法について話している人しか見つかりませんでした。私が見つけた最高のものは、それについて言及しているこのガイドですが、エスケープシーケンス対X選択対Xクリップボードにそれを突き止めるようなことは何も言っていません。(はい、X11 には選択範囲と別のクリップボードがあります。一部のコピー方法では、どちらか一方のみを設定します。)
Vim のクリップボード サポートは、X サーバーと直接通信します。Linuxデスクトップでは、端末(私の場合はKonsole)にvimを使用すると:"*dd
、行がクリップボードに入れられます。
と
(unset DISPLAY; strace -s256 -o /dev/pts/18 vim some_file.txt)
vim には、通信する X サーバーがありません。(pts18
は別のターミナル ウィンドウの tty です。) vim はxterm エスケープ シーケンスを使用してクリップボードを設定するのではないかと考えましたが、そうではありません。リージョン全体に対するシステム コールはないwrite(1, ...)
ため、xterm を介してリージョンをクリップボードに入れるためにエスケープ シーケンスを使用しようとしていないことは明らかです。
TERM=xterm
Ubuntu 15.04で、これをKonsole内で実行しました。実物も入れてみましたxterm
。
ああ、xterm はGetSelection/SetSelection
デフォルトで無効になっています。これを有効にすると、vim はそれを使用しようとするでしょうか? ただし、PuTTY もそれをサポートする必要があるため、これが役立つ場合は IDK を使用してください。