はじめに
入力中におもわず CapsLock
+ h
を押しちゃって「ムキーッ」ってなってる人向け。
日本語キーボードのキーマップを変更
CapsLock と Ctrl をスワップする
基本ですよね。
1. Win
+ R
で regedit.exe
を起動
2. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout
へと進み、Scancode Map
の名前で新規エントリ(バイナリ値)を作成 -> 再起動
もしくは下のような .reg
をファイルを作成してダブルクリック -> 再起動でも可。
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,3a,00,1d,00,00,00,00,00
具体的に何が行われているか知りたい方は公式ドキュメントをどうぞ:
- キーボードのコードマッパーをスキャンする(マイクロソフト)
AutoHotkey でキーバインドを macOS (Bash or Emacs) 風に変換
参考記事:AutoHotkeyでゆるゆるなemacsキーバインド
ダウンロード先
AutoHotkey - Powerful. Easy to learn. The ultimate automation scripting language for Windows.
インストール(しない)
ここでは ahk
スクリプトを EXE へコンパイルする機能を利用したいだけなので extract to...
をクリックして任意のフォルダへ展開します。
展開したファイルの中の Compiler
フォルダの中に Ahk2Exe.exe
があるので、これを起動します。
AHK コンパイラで実行ファイルを作成
Source (script file)エントリで .ahk
ファイルを指定します。また、出来上がった実行ファイルに独自のアイコンを付与したい場合は、 Custom Iconエントリへ .ico
ファイルを指定することもできます。
.ahk
ファイルの例(クリックで展開されます);;
;; An autohotkey script that provides emacs-like keybinding on Windows
;;
#InstallKeybdHook
#UseHook
; Include IME.ahk
; The following line is a contribution of NTEmacs wiki http://www49.atwiki.jp/ntemacs/pages/20.html
SetKeyDelay 0
; turns to be 1 when ctrl-x is pressed
is_pre_x = 0
; turns to be 1 when ctrl-space is pressed
is_pre_spc = 0
; Applications you want to disable emacs-like keybindings
; (Please comment out applications you don't use)
is_target()
{
IfWinActive,ahk_class ConsoleWindowClass ; Cygwin
Return 1
IfWinActive,ahk_class MEADOW ; Meadow
Return 1
IfWinActive,ahk_class cygwin/x X rl-xterm-XTerm-0
Return 1
IfWinActive,ahk_class MozillaUIWindowClass ; keysnail on Firefox
Return 1
; Avoid VMwareUnity with AutoHotkey
IfWinActive,ahk_class VMwareUnityHostWndClass
Return 1
IfWinActive,ahk_class Vim ; GVIM
Return 1
Return 0
}
forward_char()
{
global
if is_pre_spc
Send +{Right}
Else
Send {Right}
Return
}
isearch_forward()
{
Send ^f
global is_pre_spc = 0
Return
}
delete_char()
{
Send {Del}
global is_pre_spc = 0
Return
}
delete_backward_char()
{
Send {BS}
global is_pre_spc = 0
Return
}
quit()
{
Send {ESC}
global is_pre_spc = 0
Return
}
newline()
{
Send {Enter}
global is_pre_spc = 0
Return
}
move_beginning_of_line()
{
global
if is_pre_spc
Send +{HOME}
Else
Send {HOME}
Return
}
move_end_of_line()
{
global
if is_pre_spc
Send +{END}
Else
Send {END}
Return
}
previous_line()
{
global
if is_pre_spc
Send +{Up}
Else
Send {Up}
Return
}
next_line()
{
global
if is_pre_spc
Send +{Down}
Else
Send {Down}
Return
}
backward_char()
{
global
if is_pre_spc
Send +{Left}
Else
Send {Left}
Return
}
vscode_mutiple_select()
{
Send ^d
global is_pre_spc = 0
Return
}
vscode_select_all()
{
Send ^a
global is_pre_spc = 0
Return
}
delete_forward_char()
{
Send {ShiftDown}{END}{SHIFTUP}
Sleep 50
Send {Del}
global is_pre_spc = 0
Return
}
^d::
If is_target()
Send %A_ThisHotkey%
Else
delete_char()
Return
!d::
If is_target()
Send %A_ThisHotkey%
Else
vscode_mutiple_select()
Return
^h::
If is_target()
Send %A_ThisHotkey%
Else
delete_backward_char()
Return
^g::
If is_target()
Send %A_ThisHotkey%
Else
quit()
Return
^m::
If is_target()
Send %A_ThisHotkey%
Else
newline()
Return
^f::
If is_target()
Send %A_ThisHotkey%
Else
forward_char()
Return
!f::
If is_target()
Send %A_ThisHotkey%
Else
isearch_forward()
Return
^@::
Suspend, Toggle
Return
^a::
If is_target()
Send %A_ThisHotkey%
Else
move_beginning_of_line()
Return
!a::
If is_target()
Send %A_ThisHotkey%
Else
vscode_select_all()
Return
^e::
If is_target()
Send %A_ThisHotkey%
Else
move_end_of_line()
Return
^p::
If is_target()
Send %A_ThisHotkey%
Else
previous_line()
Return
^n::
If is_target()
Send %A_ThisHotkey%
Else
next_line()
Return
^b::
If is_target()
Send %A_ThisHotkey%
Else
backward_char()
Return
!k::
If is_target()
Send %A_ThisHotkey%
Else
delete_forward_char()
Return
これはもう完全にお好みの問題ですが、個人的なポイントは以下の通りです。
- あえて
Ctrl + K
は設定しない -> VSCode のコマンド開始や Git Bash でのkill line
を残したい ->Alt + k
で代用 - 「すべてを選択
Ctrl + A
」や「検索Ctrl + F
」はAlt
キーで代用する Ctrl + @
でサスペンド(AHK を一時的にオフ)
スタートアップに登録する
出来上がったバイナリを %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup
などに入れておけば、サインイン時にキーマップが変更されます。
Google 日本語入力で「変換」「無変換」キーで IME をオン・オフする
macOS (日本語キーボード)でのスペースバー両脇にある「英数」「かな」の機能をエミュレートします。
1.Google 日本語入力プロパティの「一般」タグの「キー設定の選択」でいったん「ことえり」を選択し、「適用」クリックします
2.右隣の「編集」をクリックして「キー設定」を以下のように変更します
モード | 入力キー | コマンド |
---|---|---|
変換中 | Hanaku/Zenkaku | IME を無効化 |
変換中 | Henkan | IME を無効化 |
変換中 | Muhenkan | IME を無効化 |
変換前入力中 | Hankaku/Zenkaku | IME を無効化 |
変換前入力中 | Muhenkan | IME を無効化 |
入力文字なし | Hankaku/Zenkaku | IME を無効化 |
入力文字なし | Muhenkan | IME を無効化 |
直接入力 | Muhenkan | IME を無効化 |
直接入力 | Hanaku/Zenkaku | IME を有効化 |
インポート用キーマップ定義ファイル(クリックで展開されます)
status key command
Conversion Hankaku/Zenkaku IMEOff
Conversion Henkan IMEOff
Conversion Muhenkan IMEOff
Composition Hankaku/Zenkaku IMEOff
Composition Muhenkan IMEOff
Precomposition Hankaku/Zenkaku IMEOff
Precomposition Muhenkan IMEOff
DirectInput Muhenkan IMEOff
DirectInput Hankaku/Zenkaku IMEOn
Composition Ctrl f MoveCursorRight
Composition Option l MoveCursorRight
Composition Right MoveCursorRight
Composition Ctrl e MoveCursorToEnd
Composition Ctrl Right MoveCursorToEnd
Composition End MoveCursorToEnd
Composition Ctrl b MoveCursorLeft
Composition Left MoveCursorLeft
Composition Option j MoveCursorLeft
Composition Ctrl a MoveCursorToBeginning
Composition Ctrl Left MoveCursorToBeginning
Composition Home MoveCursorToBeginning
Conversion Backspace Cancel
Conversion Ctrl h Cancel
Conversion ESC Cancel
Composition Ctrl g Cancel
Composition ESC Cancel
Composition Henkan InputModeHiragana
Precomposition Henkan InputModeHiragana
DirectInput Henkan InputModeHiragana
Conversion Ctrl j DisplayAsHiragana
Conversion F6 DisplayAsHiragana
Conversion Option F1 DisplayAsHiragana
Conversion Option z DisplayAsHiragana
Composition Ctrl j DisplayAsHiragana
Composition F6 DisplayAsHiragana
Composition Option F1 DisplayAsHiragana
Composition Option z DisplayAsHiragana
Composition Ctrl d Delete
Composition Delete Delete
Composition Eisu ToggleAlphanumericMode
Precomposition Eisu ToggleAlphanumericMode
Conversion Ctrl m Commit
Conversion Enter Commit
Composition Ctrl m Commit
Composition Ctrl m Commit
Composition Enter Commit
Precomposition Ctrl Backspace Undo
Composition F2 ConvertWithoutHistory
Precomposition Space InsertSpace
Composition Backspace Backspace
Composition Ctrl h Backspace
Precomposition Ctrl Shift r Reconvert
DirectInput Ctrl Shift r Reconvert
Precomposition Backspace Revert
Suggestion Shift Enter CommitFirstSuggestion
Conversion PageDown ConvertNextPage
Conversion Shift Down ConvertNextPage
Conversion Ctrl n ConvertNext
Conversion Ctrl x ConvertNext
Conversion Down ConvertNext
Conversion Option k ConvertNext
Conversion Space ConvertNext
Prediction Ctrl Delete DeleteSelectedCandidate
Conversion PageUp ConvertPrevPage
Conversion Shift Up ConvertPrevPage
Conversion Ctrl e ConvertPrev
Conversion Ctrl p ConvertPrev
Conversion Option i ConvertPrev
Conversion Shift Space ConvertPrev
Conversion Shift Tab ConvertPrev
Conversion Up ConvertPrev
Conversion Ctrl k DisplayAsFullKatakana
Conversion Ctrl l DisplayAsFullKatakana
Conversion F7 DisplayAsFullKatakana
Conversion Option F2 DisplayAsFullKatakana
Conversion Option x DisplayAsFullKatakana
Composition Ctrl k DisplayAsFullKatakana
Composition Ctrl l DisplayAsFullKatakana
Composition F7 DisplayAsFullKatakana
Composition Option F2 DisplayAsFullKatakana
Composition Option x DisplayAsFullKatakana
Conversion F9 DisplayAsFullAlphanumeric
Conversion Option c DisplayAsFullAlphanumeric
Conversion Option F3 DisplayAsFullAlphanumeric
Composition F9 DisplayAsFullAlphanumeric
Composition Option c DisplayAsFullAlphanumeric
Composition Option F3 DisplayAsFullAlphanumeric
Composition Option Space InsertFullSpace
Precomposition Shift Space InsertAlternateSpace
Conversion Ctrl ; DisplayAsHalfWidth
Conversion F8 DisplayAsHalfWidth
Conversion Option a DisplayAsHalfWidth
Conversion Option F4 DisplayAsHalfWidth
Composition Ctrl ; DisplayAsHalfWidth
Composition F8 DisplayAsHalfWidth
Composition Option a DisplayAsHalfWidth
Composition Option F4 DisplayAsHalfWidth
Conversion Ctrl ' DisplayAsHalfAlphanumeric
Conversion Ctrl : DisplayAsHalfAlphanumeric
Conversion F10 DisplayAsHalfAlphanumeric
Conversion Option F5 DisplayAsHalfAlphanumeric
Conversion Option s DisplayAsHalfAlphanumeric
Composition Ctrl ' DisplayAsHalfAlphanumeric
Composition Ctrl : DisplayAsHalfAlphanumeric
Composition F10 DisplayAsHalfAlphanumeric
Composition Option F5 DisplayAsHalfAlphanumeric
Composition Option s DisplayAsHalfAlphanumeric
Conversion Ctrl d SegmentFocusRight
Conversion Ctrl f SegmentFocusRight
Conversion Right SegmentFocusRight
Conversion Ctrl Right SegmentFocusLast
Conversion End SegmentFocusLast
Conversion Ctrl b SegmentFocusLeft
Conversion Ctrl s SegmentFocusLeft
Conversion Left SegmentFocusLeft
Conversion Ctrl a SegmentFocusFirst
Conversion Ctrl Left SegmentFocusFirst
Conversion Home SegmentFocusFirst
Conversion Ctrl i SegmentWidthShrink
Conversion Ctrl q SegmentWidthShrink
Conversion Shift Left SegmentWidthShrink
Conversion Ctrl o SegmentWidthExpand
Conversion Ctrl w SegmentWidthExpand
Conversion Shift Right SegmentWidthExpand
Composition Space Convert
Conversion Tab PredictAndConvert
Composition Tab PredictAndConvert
Suggestion Ctrl n PredictAndConvert
Suggestion Down PredictAndConvert
Composition Kanji IMEOff
Composition OFF IMEOff
Composition ON IMEOn
Conversion Kanji IMEOff
Conversion OFF IMEOff
Conversion ON IMEOn
DirectInput Kanji IMEOn
DirectInput ON IMEOn
Precomposition Kanji IMEOff
Precomposition OFF IMEOff
Precomposition ON IMEOn
この設定以後に開いたアプリケーションで「変換」「無変換」キーを macOS 風に使うことができます。