LoginSignup
7
9

More than 1 year has passed since last update.

Windows10にEmacs風キーバインドを設定する

Last updated at Posted at 2022-01-17

ググるとAutoHotKeyを使う方法が結構出てくるけど、公式ツールでできそうだったのでやってみる。Emacs風というかmacOS風のやつ

  1. Microsoft PowerToysをインストールする。
    • MSがオープンで開発してる公式のツールなので信頼性が高い気がする
  2. Keyboard Manager でバインドし直す。
    • ctrl(left)-a -> Home
    • ctrl(left)-b -> Left
    • ctrl(left)-d -> Delete
    • ctrl(left)-e -> End
    • ctrl(left)-f -> Right
    • ctrl(left)-h -> Backspace
    • ctrl(left)-k -> shift-End
    • ctrl(left)-m -> Enter
    • ctrl(left)-n -> Down
    • ctrl(left)-p -> Up
    • ctrl(left)-y -> ctrl-v
    • ctrl(left)-shift-j -> IME Convert
    • ctrl(left)-shift-; -> IME Non-Convert
    • win(left)-a -> ctrl-a
    • win(left)-c -> ctrl-c
    • win(left)-f -> ctrl-f
    • win(left)-n -> ctrl-n
    • win(left)-r -> ctrl-r
    • win(left)-t -> ctrl-t
    • win(left)-w -> ctrl-w
    • win(left)-x -> ctrl-x
    • win(left)-p -> ctrl-p
    • win(left)-n -> ctrl-n
    • ctrl(left)-d -> ctrl(right)-d (windowsterminal.exe)
    • ctrl(left)-k -> ctrl(right)-k (windowsterminal.exe)
    1. caps lock を ctrlに

問題点:

  • WSL使うときに困る。
    • バインドを変えたキーを押すと ^@ が送信される
      • eg. ctrl-h -> backspace をおしたとき、showkey -a で確認すると ^@ 0 0000 0x00 がctrlボタンを離したときに送信されてる。
      • https://github.com/microsoft/PowerToys/issues/6024 これに似てるけどちがうっぽい
      • Windows Terminal 使うとこの問題起きない。
    • Ubuntuのもともとのバインドとぶつかる
      • ctrl-d でターミナル切ったりするのがやりづらくなる
      • プロファイル切り替え機能とか除外するアプリをリストする機能のissueがあるので、いつかサポートされるかもしれない。
      • ハック的な方法。windowsterminal.exeにたいして元のキーバインドを上書きする。
        • たとえばctrl-d をwindowsterminal.exeではバインドなしで、その他のアプリ上では delete にさせたいとき、
          • 「すべてのアプリ」を対象に ctrl(left)-d -> Delete をバインドする
          • 「windowsterminal.exe」を対象にctrl(left)-d -> ctrl(right)-d をバインドする
  • インポート/エクスポート機能がない
    • さまざまな環境をセットアップする場合はネックになりそう。
  • ctrl-k で kill line みたいな高度なことはできない

OSが違うんだから、WindowsつかうときはWindowsの操作に慣れるというほうがいい気はするんだけど、アローキーをホームポジションを崩すことなく使えるバインドを使いたい気持ちにあらがえない時に。

7
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
9