クロージャを使うのには大仰なときはラムダ式で無名関数を割り当ててやるのでも OK です。
config.py
# IME 切り替え
keymap_global["U1-J"] = lambda : set_ime(1)
keymap_global["U0-F"] = lambda : set_ime(0)
keymap_global["S-U0-F"] = lambda : set_ime(1)
keymap_global["S-U1-J"] = lambda : set_ime(0)
# プレーンテキストで貼り付け
keymap_global["U0-V"] = lambda : paste_string(get_current_clipboard())
keymap_global["U1-V"] = lambda : paste_string(simple_trim(get_current_clipboard()))
# 引用符で囲んで貼り付ける
def wrap_with_quote():
cb = copy_string()
if cb:
paste_string('"{}" '.format(cb.strip()))
keymap_global["LC-U0-Q"] = wrap_with_quote
# 各行頭に > をつけて引用にする
def paste_with_quote(skip_blank=False):
def _paster():
cb = get_current_clipboard()
lines = cb.strip().splitlines()
quoted = []
for line in lines:
if skip_blank and len(line.strip()) < 1:
quoted.append(line)
else:
quoted.append("> " + line)
paste_string(os.linesep.join(quoted))
return _paster
keymap_global["U1-Q"] = paste_with_quote(False)
keymap_global["C-U1-Q"] = paste_with_quote(True)
# 選択した URL を開く
def open_url():
s = copy_string().strip()
if s:
execute_path(s)
keymap_global["C-U0-O"] = open_url
# IME オフのまま入力してしまった文字列を IME をオンにして再入力
def re_input_with_ime():
selection = copy_string(0.02)
if selection:
sequence = []
trimmed = simple_trim(selection)
for k in trimmed:
if k == "-":
sequence.append("Minus")
else:
sequence.append(k)
set_ime(1)
send_input(sequence, 0)
keymap_global["U1-I"] = re_input_with_ime