20234/01/21 現在
いろいろ試しているが、うまく動作していない。
ので、試したことの(書きかけ)メモとして残します。
環境
- win11
- VSCodeVimを利用している
- USキーボード
- 日本語入力を利用している
経緯
- 下記で紹介されている方法ほぼそのままなのですが、USキーボード、Pythonスクリプトを利用する点が異なっているので、メモです。
- VSCodeVimでインサートモードから抜ける時に日本語入力をオフにする
- 【VScode】vim拡張機能でノーマルモードに戻る時に合わせて英数入力に切り替える
設定方法
1. IME設定
2. キーのリマップ
USキーボードには無変換キーがないため、適当なショートカットキーを無変換キーに割り当てる
下記のような形で、ショートカット作成機能で、何かしらのキーの組み合わせを無変換キーに割り当てます。
20234/01/21 現在
私の環境ではショートカットリマップを設定するときにCtrlあるいはAltの左右を明示しない設定にすると、キーボードの動作自体がおかしくなりました。入力できなかったり、まったく見当違いのキーが入力されたりします。左右を明示するように注意してください。
原因は不明ですが、MSにフィードバックは送りました。
Python プログラムの作成
実行すると左ALt+左Ctrl+Uを押下するプログラムです。
python send_alt_U.py
import pyautogui
import time
def send_key(key):
pyautogui.keyDown(key)
pyautogui.keyUp(key)
def simulate_unconverted_key():
pyautogui.keyDown('altleft')
pyautogui.keyDown('ctrlleft')
pyautogui.keyDown('U')
pyautogui.keyUp('altleft')
pyautogui.keyUp('ctrlleft')
pyautogui.keyUp('U')
if __name__ == "__main__":
# 動作確認用スリープ:プログラムを実行してから数秒後にキーを入力
# time.sleep(5)
simulate_unconverted_key()
参考
現状
- vimでノーマルモードに戻ったときに日本語入力がオフにならず、正常動作しない
- Pythonスクリプトも、PythonExe化したものも、AHKも、コマンドライン上で単体で正常に動作するが、エディタの日本語入力がオフにならない
おそらく、ウィンドウフォーカスが関係している - im-selectは単体自体動作せず、実行すると4桁の数値が返ってくる、引数0で実行しても何も起こらず
おそらく、win11では動作しないのかもしれない、MSのIMのAPIが不足しているのかもしれない(憶測) - im-selectはgit-bashで実行しても結果は変わらず