CLipboard Editor.
クリップボードにコピーした文字列を素早く編集するツールです。
- Windows 10+ or MacOS 10.14(Mojave)+
- Python 3.6+
Windows:
- pip install pywin32
MacOS
- pip install pyperclip
以下を実行すると、cle が持つメソッド xxxx を呼び出します。
$ python cle.py xxxx
たとえば「クリップボード中の文字列を昇順ソートする sort_asc」を実行したい場合、以下のようにします。
$ python cle.py sort_asc
メソッドは cle.py にてグローバルで定義します。以下は sort_asc の例です。
def sort_asc(s):
lines = Util.str2lines(s)
newlines = sorted(lines)
newstr = Util.lines2str(newlines)
return newstr
ルールは以下に乗っ取ります。
- 引数は s 一つです
- String の略です
- クリップボードにコピーされた文字列が入っています
- Util クラスを使えば加工しやすいと思います
- たとえば1行1要素のリストにしたい場合、
Util.str2lines()
が使えます
- たとえば1行1要素のリストにしたい場合、
- 加工し終えた文字列を return してください
上記ルールに従えば、他のメソッドをつくることもできます。
--list
オプションを与えます。
$ python cle.py --list
is_mac
zenkaku2hankaku
tab2space
remove_spaces
remove_duplicate_lines
remove_blank_lines
crlf2space
escape_tag
sort_asc
sort_desc
reverse_order
from_powerpoint_ppt
mdquote
mdlinks
prependmdlist
prependmdlist_with_indent
amazon_url_simplify
mask
pretty_jsonstring
minify_jsonstring
onenote2scb
remove_scrapbox_link_bracket
基礎その1とその2を使って適当に工夫してください。
以下は筆者が行っている方法です。
- peco というインクリメンタルサーチツールを使う
- AutoHotkey というホットキーツールを使う
- (下記 xargs の実行には Git For Windows など Linux ツールが必要)
- 以下のように組み合わせる
- 1: pecoを使って「メソッドの一覧からインクリメンタルサーチで選ぶ」「選んだメソッドを実行する」コマンドラインをつくる
- 2: 1 を、Autohotkey から一発で呼び出す
peco を使ったコマンドライン。
@echo off
setlocal
set cle_path=D:\work\github\stakiran\cle.py
python %cle_path% -l | peco | xargs python %cle_path% & timeout 3
以下はアプリケーションキー(右側のaltやctrlのあたりにある、右クリックメニューを表示するキー)に割り当てた例。
AppsKey::run,D:\bin1\\cl.bat
ソースコードなど開発ネタ。
Ans: cle のメソッド候補として表示させないために、クラスをはさんでいる
Utilも同様。
そういう意味では is_mac() も Util に入れるべきだが、まだできてない。
Ans: そう思います。
歴史的経緯を書いておくと、
- pyperclip 知らなかったときに自分で頑張ってクリップボード処理をつくった(windowsのみ)
- MacOS でも使いたくなったが、この処理だと動かん
- pyperclip 使うと楽そうだったので取り入れた
- windows 側の処理はいまので動いてるしそのまま放置
Ans: 元々プライベートで使ってたものを(見せられない部分を削って)公開したものなので、粗さが目立つと思います