macのiTerm2とAquaSKKを使う場合
まあ、解決策はいくつも出てる訳ですが、自分用として。
問題点
- iTermというか、ターミナルソフトではCTRL+Jで改行コードと同じようになってる
- でもって、日本語入力にSKKを使うとASCIIからかなに切り替え時にCTRL+Jを入力が必要
- その結果、日本語に切り替えようとすると、改行コードが送られてしまうという困った状態に。
これまでの解決策
いくらAquaSKK使いがマイナーといっても、この組み合わせを使う人はたくさんいる訳で
基本はここ http://mzp.hatenablog.com/entry/2015/03/15/213219
流れは次の通り。
- まずはCTRL+J以外でもひらがなに切り替えられるようにする。
- 次にCTRL+Jを入力したら違うキーコードを送るようにする。
個人的な問題点
マイナーなものを選ぶ人って、その中でもさらにマイナーなことやったりするから……
- 入力はAquaSKKのみに専念して、英語入力すら設定しないようにしてる。つまり「かな」キーは日本語入力への変更なんぞには使ってない。ひらがな入力切り替えはCTRL+Jしか使ってなかった。参考は http://kiririmode.hatenablog.jp/entry/20150114/1421161200
- SierraだとKarabinerがまだ使えないよねってこと。
個人的な解決策
対応はkeyhacを使うことにして、keyhacとaquaskkの両方に設定を加えました。
- 最初はaquaskk。やり方は http://qiita.com/yoshiyoshifujii/items/7dde93ac32564395cb76 を参考にして、「かな」キーも切り替えキーにした。
(修正前) SKK_JMODE ctrl::j (修正後) SKK_JMODE ctrl::j||keycode::0x68
ちなみに最初はこれをマネしたところ、切り替えたときに「0」が一緒に入力されたのでそれを回避したかった。
- 次はkeyhac。keyhacのconfig.pyにこんな風に加えた。
keymap_terminal = keymap.defineWindowKeymap( app_name="com.googlecode.iterm2" ) # iterm2だけのローカル設定 keymap_terminal["Ctrl-J"] = "104" # CTRL-Jを入力するとかなを送信。104はかなキーの仮想キーコード
こうすることで、iterm上でCTRL-Jを入力すると、かなキーが送られるのでASCIIからかなモードに変換されるだけ。余分なキーも送信されない。