Edge でプライベートウィンドウを使ってその中でテキストをコピーすると クリップボードにはコピーされるのですが Win-V で使えるクリップボードの履歴には残りません
プライベートウィンドウなので気を使ってそういうことをしてるのでしょうが 余計な機能で迷惑です
履歴に残ってるからとプライベートウィンドウを閉じてから残ってないことに気づきました……
Chrome ならそんな余計なことはしないのですけどね
ググるとこの事象でバグ報告してる人がいました
ただ回避方法は見当たらないので Chrome を使うしか無いようです
Win-V のクリップボード履歴は標準で使えるのがメリットで 機能的にはかなり不足してると思うので ブラウザを Chrome にするよりも別のクリップボード管理ツールを入れるほうがいいかもしれません
import pyperclip
text = pyperclip.paste()
lines = text.splitlines()
lines = [line[4:] if line.startswith(">>>") or line.startswith("...") else "# " + line for line in lines]
pyperclip.copy("\n".join(lines))
⇩のような REPL の出力を
>>> class A: pass
...
>>> def x():
... return 1
...
>>> x()
1
>>> A()
<__main__.A object at 0x7f64c810be48>
⇩に変換する
class A: pass
def x():
return 1
x()
# 1
A()
# <__main__.A object at 0x7f64c810be48>
現在のクリップボードのテキストを変換するので REPL 出力をコピペするときに貼り付けの前にこれを実行する
REPL のフォーマットじゃなくて実行できる正しい Python 構文にしたいときに便利
複数文まとめて再実行するときにも使える
実行にはライブラリ pyperclip が必要
これまで web ページで変換ツールにしていたけど
1)ページ開いて
2)入力ボックスに貼り付けて
3)出力ボックスをコピーして
という手順が面倒でクリップボードのデータをそのまま変更したほうが楽そうなのでやってみた
クリップボード履歴管理ツールを使ってると変更前のも残るので便利
Clipboard.SetText("copied!");
VirtualBox で動かしてるゲストの Win10 でこのコードを実行すると例外が起きる
Guest Additions 入れてクリップボード双方向共有にしてるけど これが原因?