1.きっかけ
Obsidianを使い始め、VIM操作モードを有効にして使っています。 今までもコーディングではvimを使っていましたが、Windows環境では積極的にvi環境にしようと思っていませんでした。
今回、Obsidianを使い始め、この問題に改めて直面し考えた結果、「日本語入力への切り替えと操作が競合する」と気付きました。 日本語入力を「Ctrl+Space」で切り替えられるようにして、CapsをCtrlで上書きしました。まだ慣れていなくてShiftと間違えることがありますが、変えて正解でした。
2.想定読者
- Windows10でマウスやカーソルキーの使用頻度を減らしたい人
- Windows10上でCtrl,ESC,BSの位置を変えたい人
- Windows10上でVIM互換操作を快適にしたい人
- 読み替えればEmacs操作のカスタムも可能です。
3.参考にしたページ
- https://www.google.co.jp/ime/ (Google日本語入力)
- https://www.losttechnology.jp/Win7/keycustomize.html (ESC、Ctrl)
- https://www.saluteweb.net/~oss_keyswap.html (ESC、Ctrl)
- http://maikaze.cafe.coocan.jp/keycodes.html (キーコード一覧)
- https://www.atmarkit.co.jp/ait/articles/1805/28/news022.html (Google日本語入力)
- https://loumo.jp/archives/25374 (ctrl2cap)
- https://pcmanabu.com/windows10-ime/ (変換、無変換)
4.キーバインド/Windows10
ctrl2capを使う
CapsLockをCtrlにします。(入れ替えではありません)
- Ctrl2Capsをダウンロード、解凍する。
- コマンドプロンプトを管理者権限で立ち上げる。
-
ctrl2cap /install
を実行。 - Windows10を再起動する。
レジストリーを書き換える(未経験者は非奨励)
手順
- 下記の内容を「LayoutScancodeMap.reg」に保存する。
- 作成した「LayoutScancodeMap.reg」をダブルクリックする。
- Windows10を再起動する。
変更内容その1
CapsLockをCtrlに、半角全角をEscにします。(入れ替えではありません)
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,03,00,00,00,1d,00,3a,00,01,00,29,00,00,00,00,00
変更内容その2
CapsLockをCtrlに、無変換をEscに、変換をBSにします。(入れ替えではありません)
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,04,00,00,00,1d,00,3a,00,01,00,7b,00,0e,00,79,00,00,00,00,00
キーコード
ESC | BS | 左Ctrl | CapsLock | 変換 | 無変換 |
---|---|---|---|---|---|
0x0001 | 0x000e | 0x001d | 0x003a | 0x0079 | 0x007b |
5.キーバインド/Google日本語入力
Google日本語入力インストール済みからの手順
- タスクバーの「
あ
」もしくは「A
」を右クリック - 「
プロパティー
」をクリック -
一般
タブ →キー設定/キー設定の選択
-
MS-IME
を選択して編集
をクリック ※MS-IMEは好み - (設定の変更)
-
OK
で変更を確定。 - 日本語入力を利用するソフトを再起動する。
設定内容A
- 4箇所にある
Hankaku/Zenkaku
を全てCtrl+Space
に変更。
設定内容B(変更内容その2では不要)
-
Muhenkan
とHenkan
は、Ctrl+Muhenkan
とCtrl+Henkan
に変更。- 使わないなら削除でもOK。初期化もできる。
-
直接入力
Hekan
IMEを有効化
を追加。 -
入力文字なし
Muhekan
IMEを無効化
を追加。 -
変換前入力中
Muhekan
IMEを無効化
を追加。 -
変換中
Muhekan
IMEを無効化
を追加。
設定内容C
-
変換前入力中
Ctrl+文字
コマンド
の、文字
の割り当てを変える。 -
変換中
Ctrl+文字
コマンド
の、文字
の割り当てを変える。
使用頻度の高いもの
変換中
- 文節を縮める
Ctrl+H
- 文節を伸ばす
Ctrl+L
- 次候補を選択
Ctrl+J
- 前候補を選択
Ctrl+K
- 文節を左に移動
Ctrl+N
EMACSな人には違和感があると思う。 - 文節を右に移動
Ctrl+P
(同上)
サジェスト表示中
- 予測変換
Ctrl+J
雑感
- VIM派は文字の意味よりも指の配置を考慮するといいと思う。
- 思えないと意味がないのでバランスは大切。
- EMACS派は文字の意味で。
設定内容(備考)
- 上記の全てが設定済み(
Ctr+文字
についてはVIM風)のサンプルが「おまけ」にあります。
6.単語登録
- 「抑制単語」用の辞書
- 「絵文字」用の辞書
- その他用の辞書
7.おまけ
ノーマルモードに戻る(ESCではなくて)
- https://vim.blue/vim-esc-altanative-keybind/
-
Ctrl+[
ESCの代替え(上記ページより)。 -
Ctrl+C
強制キャンセル(上記ページより)
GoogleKeymap.txt(サンプル)
インポート用テキストファイルの内容
status key command
DirectInput Ctrl Space IMEOn
DirectInput Henkan IMEOn
DirectInput Eisu IMEOn
DirectInput Hiragana Backspace
DirectInput Katakana IMEOn
DirectInput F13 IMEOn
Precomposition Ctrl Space IMEOff
Precomposition Muhenkan IMEOff
Precomposition Henkan IMEOn
Precomposition Space InsertSpace
Precomposition Shift Space InsertAlternateSpace
Precomposition Ctrl Shift Space InsertFullSpace
Precomposition Shift Muhenkan ToggleAlphanumericMode
Precomposition Backspace Revert
Precomposition Ctrl Backspace Undo
Precomposition Eisu ToggleAlphanumericMode
Precomposition Hiragana Backspace
Precomposition Henkan Reconvert
Precomposition Katakana InputModeFullKatakana
Precomposition Muhenkan InputModeSwitchKanaType
Composition Ctrl Space IMEOff
Composition Muhenkan IMEOff
Composition Henkan IMEOn
Composition Backspace Backspace
Composition Ctrl Enter Commit
Composition Ctrl Backspace Backspace
Composition Ctrl Left MoveCursorToBeginning
Composition Ctrl Right MoveCursorToEnd
Composition Ctrl Up MoveCursorToBeginning
Composition Ctrl Down MoveCursorToEnd
Composition Ctrl s InsertHalfSpace
Composition Ctrl Shift Space InsertFullSpace
Composition Ctrl Henkan Convert
Composition Ctrl Muhenkan SwitchKanaType
Composition Left MoveCursorLeft
Composition Right MoveCursorRight
Composition Up MoveCursorToBeginning
Composition Down MoveCursorToEnd
Composition Ctrl h MoveCursorLeft
Composition Ctrl l MoveCursorRight
Composition Ctrl k MoveCursorToBeginning
Composition Ctrl j MoveCursorToEnd
Composition Ctrl n MoveCursorToBeginning
Composition Ctrl p MoveCursorToEnd
Composition Ctrl m Commit
Composition Ctrl z Cancel
Composition Ctrl g Backspace
Composition Ctrl d Delete
Composition Ctrl t ConvertToHalfAlphanumeric
Composition Ctrl u ConvertToHiragana
Composition Ctrl i ConvertToFullKatakana
Composition Ctrl o ConvertToHalfWidth
Composition Delete Delete
Composition Eisu ToggleAlphanumericMode
Composition End MoveCursorToEnd
Composition Enter Commit
Composition ESC Cancel
Composition F10 ConvertToHalfAlphanumeric
Composition F2 ConvertWithoutHistory
Composition F6 ConvertToHiragana
Composition F7 ConvertToFullKatakana
Composition F8 ConvertToHalfWidth
Composition F9 ConvertToFullAlphanumeric
Composition Hiragana Backspace
Composition Home MoveCursorToBeginning
Composition Katakana InputModeFullKatakana
Composition Space Convert
Composition Tab PredictAndConvert
Composition Shift Backspace Backspace
Composition Shift ESC Cancel
Composition Shift Left MoveCursorLeft
Composition Shift Right MoveCursorRight
Composition Shift Muhenkan ConvertToFullAlphanumeric
Composition Shift Space Convert
Conversion Ctrl Space IMEOff
Conversion Muhenkan IMEOff
Conversion Henkan IMEOn
Conversion Ctrl Enter Commit
Conversion Ctrl Backspace Cancel
Conversion Ctrl Left SegmentFocusFirst
Conversion Ctrl Right SegmentFocusLast
Conversion Ctrl Up ConvertPrev
Conversion Ctrl Down CommitOnlyFirstSegment
Conversion Ctrl Muhenkan SwitchKanaType
Conversion Ctrl Henkan ConvertNext
Conversion Ctrl s InsertHalfSpace
Conversion Ctrl Shift Space InsertFullSpace
Conversion Backspace Cancel
Conversion Left SegmentFocusLeft
Conversion Right SegmentFocusRight
Conversion Up ConvertPrev
Conversion Down ConvertNext
Conversion Ctrl m Commit
Conversion Ctrl h SegmentWidthShrink
Conversion Ctrl l SegmentWidthExpand
Conversion Ctrl k ConvertPrev
Conversion Ctrl j ConvertNext
Conversion Ctrl n SegmentFocusLeft
Conversion Ctrl p SegmentFocusRight
Conversion Ctrl a SegmentFocusFirst
Conversion Ctrl e SegmentFocusLast
Conversion Ctrl f CommitOnlyFirstSegment
Conversion Ctrl z Cancel
Conversion Ctrl g Cancel
Conversion Ctrl t ConvertToHalfAlphanumeric
Conversion Ctrl u ConvertToHiragana
Conversion Ctrl i ConvertToFullKatakana
Conversion Ctrl o ConvertToHalfWidth
Conversion Delete Cancel
Conversion Eisu ToggleAlphanumericMode
Conversion End SegmentFocusLast
Conversion Enter Commit
Conversion ESC Cancel
Conversion F6 ConvertToHiragana
Conversion F7 ConvertToFullKatakana
Conversion F8 ConvertToHalfWidth
Conversion F9 ConvertToFullAlphanumeric
Conversion F10 ConvertToHalfAlphanumeric
Conversion Hiragana Backspace
Conversion Home SegmentFocusFirst
Conversion Katakana InputModeFullKatakana
Conversion PageDown ConvertNextPage
Conversion PageUp ConvertPrevPage
Conversion Shift Backspace Cancel
Conversion Shift Down ConvertNextPage
Conversion Shift ESC Cancel
Conversion Shift Henkan ConvertPrev
Conversion Shift Left SegmentWidthShrink
Conversion Shift Muhenkan ConvertToFullAlphanumeric
Conversion Shift Right SegmentWidthExpand
Conversion Shift Space ConvertPrev
Conversion Shift Tab ConvertPrev
Conversion Shift Up ConvertPrevPage
Conversion Space ConvertNext
Conversion Tab PredictAndConvert
Prediction Ctrl Delete DeleteSelectedCandidate
Suggestion Ctrl j PredictAndConvert
Suggestion Ctrl m CommitFirstSuggestion
Suggestion Down PredictAndConvert
Suggestion Shift Enter CommitFirstSuggestion
DirectInput ON IMEOn
DirectInput Kanji IMEOn
Precomposition OFF IMEOff
Precomposition ON IMEOn
Precomposition ASCII InsertCharacter
Precomposition Kanji IMEOff
Composition ASCII InsertCharacter
Composition Kanji IMEOff
Composition OFF IMEOff
Composition ON IMEOn
Conversion OFF IMEOff
Conversion ON IMEOn
Conversion Kanji IMEOff
テキストファイルの補足
-
Ctrl+Space
設定済み -
Muhenkan
、Henkan
設定済み -
Ctrl+文字
について- 元からあるカーソルキーのコマンドを、そのままhjklに割り当て。
- 重複している割り当ては削除。
- 元からあるコマンドは残す。
-
Muhenkan
/Henkan
をESC/BSに割り当てました(2020-11-06)
8.雑感
新しいキーバインドの感想
- Ctrl+Spaceは快適。
- Ctrl+AやCtrl+Qなど、小指が担当しているキーを使う時にミスる。
- Ctrl,Shiftの打ち間違いが起こる。
- 半角/全角キーと打つクセはまだ抜けていないが、全体的には好感触。