Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
6
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

@risou

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

ここでは 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 のキーマップの内容をそのままコピーする必要がある。そうすれば、作成したファイルを参照するようになるので、編集も可能だ。やり方は既に書いた。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
6
Help us understand the problem. What are the problem?