LoginSignup
6
6

More than 5 years have passed since last update.

Mac の Sublime Text 3 で SKK を快適に使う

Last updated at Posted at 2015-01-30

ここでは AquaSKK で発生した問題と解決方法を記載します。他の SKK ライクな IM などについては検証していません。

問題

SKK の利用において、最も頻繁に使う機能の1つに「キャンセル」がある。デフォルトでは「キャンセル」は ESC あるいは Ctrl+G に割り当てられている。

一方、Sublime Text 3 では Ctrl+G は行番号指定ジャンプに割り当てられている。 Sublime Text は自身のアプリケーション内でのキーバインド設定を優先するため、 SKK 側の Ctrl+G (キャンセル)が効かない。

解決方法

まず、 default キーマップ用のファイルを作成する。

$ touch ~/Library/Application` Support/Sublime\ Text\ 3/Packages/Default/Default\ \(OSX\).sublime-keymap

次に、 default のキーマップを開く。
Preferences -> Key Bindings - Default
このキーマップの内容を先程作成した Default (OSX).sublime-keymap というファイルにコピーする。

最後に、 Default (OSX).sublime-keymap をエディタで開き、以下の行を削除(もしくは他のキーに変更)する。

    { "keys": ["ctrl+g"], "command": "show_overlay", "args": {"overlay": "goto", "text": ":"} },

変更する場合は "ctrl+g" の部分を変更すれば良いが、複数キー入力の1つ目を "ctrl+g" にしてはならない。

ダメな例)["ctrl+g", "ctrl+l"]

解説

問題を解決したいだけの人はここまでで十分である。以下に上記解決方法の詳細を解説する。

この手の問題に対して検索して出てくる方法として、 Sublime Text 3 の user のキーマップ上で Ctrl+G を無効にする、というものがある。

[
    { "keys": ["ctrl+g"], "command": "unbound" }
]

この設定を行うことで、 Ctrl+G を押しても行番号指定ジャンプのためのオーバーレイは表示されなくなる。しかし、 SKK 側には Ctrl+G は伝達されない。依然、キーマップ上でその入力は Sublime Text のものとして登録されているためだ。

そこで、 user のキーマップに追加するのではなく、 default のキーマップ上から Ctrl+G を削除することにする。これによって、 Gtrl+G は Sublime Text 上で握り潰されず、 SKK まで到達されるようになる。

ただ、 Sublime Text 3 では default のキーマップを表示することはできるが、そのまま編集することはできない(そもそも所定のディレクトリに対象のファイルが存在しない)。

そのため、所定のディレクトリに自らファイルを作り、 default のキーマップの内容をそのままコピーする必要がある。そうすれば、作成したファイルを参照するようになるので、編集も可能だ。やり方は既に書いた。

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6