Chapter 05

カスタムホットキーの定義

AWtnb
AWtnb
2021.12.30に更新

クロージャを使うのには大仰なときはラムダ式で無名関数を割り当ててやるのでも 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