WebDesign Dackel

SublimeText3のTable Editorで日本語入力を何とかする

SublimeText3のTable Editorで日本語入力を何とかする

Hatena0
Google+0
Pocket0
Feedly0

これまでずっとSublimeText2を使っていたのですが、やっと最近3に乗り換えました。
普段、Markdownでテキストを書くときにもSublimeを使っているのですが、入力が面倒なためテーブルはあまり使っていませんでした。笑

ただ、下記のブログで紹介されているTable Editorというのが良さそうだったので試したら、かなり使いやすくて一目惚れしました。

Sublime Text 3 を最強の Markdown エディタに。- Layman’s Web Creation.

しかし重大な問題があり、日本語の入力が上手く出来ないのです。
具体的には入力後、確定のためにEnterを押すと、動作がおかしくなってしまうみたいです。

せっかく使いやすいプラグインなのに、勿体無い…。
そんな訳で日本語が上手く入力できるようになんとかしてみたいと思います。

※ちなみに環境はMac、IMEにはGoogle日本語入力を使っています。申し訳ありませんがWindowsをお使いの方は適宜読み替えて下さい。

日本語入力に対応するには

確定時に押下するEnterに割り振られたキーバインドが原因っぽいので、そこを編集していきたいと思います。
一応、新規にパッケージをインストールするところから入ります。

1. まずはパッケージをインストール、初期設定

⌘+Shift+PでPackage Controlを開き、installを入力後、Enterを押します。
そうしたらTable Editorと入力してまたEnterでパッケージをインストールします。

パッケージが無事にインストール出来たら、適当なMarkdownのファイルを開いて、再度Package Controlを開いて下記を入力後、Enterを押します。

Table Editor: Enable for current syntax

このコマンドを実行後、現在のシンタックス(Markdown)でプラグインが動作するようになるようです。

これでパッケージのインストールと使用準備が整いました。

2. 日本語入力のバグを確認

早速、使ってみます。

日本語入力のバグ

ものすごくイライラしますね。笑
とにかく日本語の入力に対しておかしな動作をしています。。。

3. キーバインド用の設定ファイルを作る

基本設定からPackage Setttings > Table Editor > KeyBindings - Defaultを開きます。

Table Editor設定画面

そうすると、ダァーっとプラグインに設定されたキーバインドが一覧されるかと思います。
最初は、このまま編集しようと思ったのですが編集できないみたいなので、新しく設定ファイルを作ろうと思います。

先ほど表示されたキーバインドの一覧を、一旦全てコピーしておきます。
※適当なファイルにペーストしておいても良いかもしれません。

パッケージ用のフォルダを開いて、そこにTable Editorというフォルダを作成します。
さらにその中にDefault (OSX).sublime-keymapという空ファイルを作成します。
ディレクトリはこんな感じになります。

Packages
├─ Table Editor
│ └── Default (OSX).sublime-keymap

4. Enterに関わるキーバインドを編集

先ほど作ったDefault (OSX).sublime-keymapを開いて、コピーしておいたキーバインドの一覧をペーストします。
そうしたら、一度Sublimeを再起動します。(一度閉じないと編集できませんでした)

24〜30行目付近にEnter用の設定があるので下記のように編集します。

キーバインド一覧

// { "keys": ["enter"], "command": "table_editor_next_row", "context":
//     [
//         { "key": "setting.enable_table_editor", "operator": "equal", "operand": true, "match_all": true },
//         { "key": "preceding_text", "operator": "regex_contains", "operand": "^s*|", "match_all": true },
//         { "key": "following_text", "operator": "regex_contains", "operand": "|", "match_all": true }
//     ]
// },
{ "keys": ["super+enter"], "command": "table_editor_next_row", "context":
    [
        { "key": "setting.enable_table_editor", "operator": "equal", "operand": true, "match_all": true },
        { "key": "preceding_text", "operator": "regex_contains", "operand": "^s*|", "match_all": true },
        { "key": "following_text", "operator": "regex_contains", "operand": "|", "match_all": true }
    ]
},

enterの部分をsuper+enterと変えています。
同じような内容が155行目付近にもあるので、同様に編集しておきます。

これで設定は完了しました。ここでは再起動の必要はありません。
早速設定が反映されているか試してみます。

6. 日本語が確定出来るかテスト

日本語入力に対応

とっても快適です。

もともとEnterで次の行へ移れたのですが、先ほど編集したキーバインドのせいで効かなくなっています。
そのかわり⌘+Enterで次の行へ移れるかと思いますが、「他のキーの方が使いやすいよ」という場合は、Default (OSX).sublime-keymapを再度編集すれば好みに合わせた設定が出来ます。

プラグインについて

その他詳細は下記をご確認ください。

Table Editor

まとめ

この方法が正攻法か分かりませんので、他によい解決策をご存知の方がいたらぜひ教えて頂けたらと思います…。

でも、とりあえずこれでMarkdownを使うとき快適にテーブルを書くことができそうです。