macのiTerm2とAquaSKKを使う場合

まあ、解決策はいくつも出てる訳ですが、自分用として。

問題点

  1. iTermというか、ターミナルソフトではCTRL+Jで改行コードと同じようになってる
  2. でもって、日本語入力にSKKを使うとASCIIからかなに切り替え時にCTRL+Jを入力が必要
  3. その結果、日本語に切り替えようとすると、改行コードが送られてしまうという困った状態に。

これまでの解決策

いくらAquaSKK使いがマイナーといっても、この組み合わせを使う人はたくさんいる訳で
基本はここ http://mzp.hatenablog.com/entry/2015/03/15/213219
流れは次の通り。

  1. まずはCTRL+J以外でもひらがなに切り替えられるようにする。
  2. 次にCTRL+Jを入力したら違うキーコードを送るようにする。

個人的な問題点

マイナーなものを選ぶ人って、その中でもさらにマイナーなことやったりするから……

  1. 入力はAquaSKKのみに専念して、英語入力すら設定しないようにしてる。つまり「かな」キーは日本語入力への変更なんぞには使ってない。ひらがな入力切り替えはCTRL+Jしか使ってなかった。参考は http://kiririmode.hatenablog.jp/entry/20150114/1421161200
  2. SierraだとKarabinerがまだ使えないよねってこと。

個人的な解決策

対応はkeyhacを使うことにして、keyhacとaquaskkの両方に設定を加えました。

(修正前)
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からかなモードに変換されるだけ。余分なキーも送信されない。