[Sublime Text 3]日本語の単語分割機能を強化するプラグインを作った
Sublime Text、もうめちゃくちゃ使いやすくて既に恋に落ちているエディタなんだけど、一つ使いづらい点がある。
それは日本語の分割機能が弱いこと。
ChromeとかWordとかだと、日本語の文章の上でダブルクリックすると日本語の単語が一つ選択される。
でもSublime Textだと文章全部選択されちゃう。場合によっては段落一つ丸々選択される。
一応分割単位をある程度小さくすることもできるけど、これでは不十分。
う~ん、これは非常にまずい。LaTeXで論文とか書く時は特に使いづらい。
じゃあどうするか。
そう、プラグインを作ってしまえばいい。
JapaneseWordSeparator
これを使うと、ダブルクリックで単語単位での選択が可能になる。
ドラッグで選択範囲を広げる事や、Ctrlを押しながら選択することで複数の選択範囲を持つこともできる。
単語の検出には、TinySegmenterをpython版に修正したものを用いている。
現在はPackage Controlに申請中なので、使いたい人はGitHubのリポジトリからクローンして使ってほしい。
(追記:2018/06/13)無事Package Controlに登録されました!
というわけで、普通にSublimeText内のPackage controlから探してもらえればこのプラグインが出てくるので、そっからインストールしてほしい。
もちろん、Githubのリポジトリを[Preferences]>[Browse Packages...]で出てきたフォルダにクローンしてもらっても全然OK。
・・・正直に言うと、APIの制約の関係上、もともとの機能と遜色ないものは作れなかった。
Sublime TextのAPIでは、マウスクリックのリリースを検出できないし、ドラッグ時のマウスの軌跡を追う事もできない。
この制約の中でドラッグを用いるためには、on_hoverというメソッドを使うしかなかった。これはマウスがホバーした時に呼び出されるメソッド。だからドラッグして選択範囲を広げたとき、範囲が広がるまでに少しラグが生じている。
Called when the user's mouse hovers over a view for a short period.
API Reference – Sublime Text 3 Documentation
他にも色々、元々のダブルクリック時の挙動とはいろいろ異なる点が出てきてしまっている。
(詳しくはGitHubページのREADME.mdの「確認できている不具合など」を参照)
今の状態でも日本語環境においては大分使いやすくなっているが、まだまだ完璧とは言い難い。
もっとこのプラグインをブラッシュアップしていかねば。
もしこのプラグインを使ってみて何か指摘とかある場合は、ぜひ気軽にコメントください。
この記事へのコメントはこちら