Edited at

macOS High Sierra / Mojave で 日本語モード時に スペース <-> 半角 入れ替え

csrutil status

System Integrity Protection status: enabled.

command+R起動してからTerminal

csrutil disable

reboot

sudo vi "/System/Library/Input Methods/JapaneseIM.app/Contents/PlugIns/JapaneseIM.appex/Contents/Resources/KeySetting_Default.plist"

--- /System/Library/Input Methods/JapaneseIM.app/Contents/PlugIns/JapaneseIM.appex/Contents/Resources/KeySetting_Default.plist.orig 2017-09-26 10:34:40.000000000 +0900

+++ /System/Library/Input Methods/JapaneseIM.app/Contents/PlugIns/JapaneseIM.appex/Contents/Resources/KeySetting_Default.plist 2017-09-26 10:38:30.000000000 +0900
@@ -11,12 +11,16 @@
<key>&apos; &apos;</key>
<dict>
<key>command</key>
- <string>contextual_space</string>
+ <string>direct_input</string>
+ <key>character</key>
+ <string> </string>
</dict>
<key>shift+&apos; &apos;</key>
<dict>
<key>command</key>
- <string>contextual_space_reverse</string>
+ <string>direct_input</string>
+ <key>character</key>
+ <string> </string>
</dict>
<key>delete:</key>
<dict>

killall JapaneseIM

入力をどこでもいいのので望み通りの動きか確かめて再起動

command+R起動してからTerminal

csrutil enable

reboot

contextual_space_reverse / contextual_space を有効活用したかったが、スペース連打すると半角スペース -> 全角スペース と交互に繰り返したりでうまくいかなかったのでベタ書き

Mojaveでも手順は一緒でした