2016年7月29日金曜日
2016年7月18日月曜日
ST3 日本語環境向けプラグイン MultibyteWordSeparators の解説
MultibyteWordSeparators とは?
Sublime Text 3 向けのマルチバイト文字列に対応した単語移動をサポートするパッケージです。
github:SublimeMultibyteWordSeparators
※ 5/1現在Package Controlに登録申請中のため、インストールは手動になります。
※ 5/4にPackage Controlに取り込まれました。
日本語に対応しているエディタの場合、単語移動でカーソル移動すると漢字・ひらがな・カタカナ・英数字を判別し、単語らしきところでカーソルが止まるようになっています。
Sublime Text 3 は、日本語を単語移動しようとすると2byte文字列が判別できず、一つの単語として移動してしまいます。
そこで単語移動出来るように MultibyteWordSeparators を作成しました。
どうやってるの?
漢字・ひらがな・カタカナ・英語・数字・記号のグループを作成し、片っ端から正規表現で引っかけています。
次に、カーソルの位置が漢字であればそれを主とし、主となる文字種から変わるまでカーソルを移動させ続けます。
例えば、ひらがなと同じリストに数字を入れればひらがなと同じ種別と判別され、移動もひらがなと数字は一緒に移動されます。
つまり、厳密には”単語”移動ではないです。
形態素解析は使わなかったの?
そういうわけで、形態素解析は使っていません。
実際のところ、開発時に形態素解析が手軽に使えることを知らなかった、という理由もあったり無かった……。
ちょっと形態素解析の場合について考えてみたけど、現在のカーソル位置から前後の文章をある程度チェックする手間、カーソル位置がその文書のどこに当たるのかをそれぞれチェックする必要がありそうで、逆に手間かも……。
個人的には現在のやり方がベターな気がしてます。
日本語の単語移動の件は困ってる方も結構いるようだったので、このプラグインが一助になればいいなと思いを込めての宣伝でした。
5/9 ver1.1.0 へアップデート
マウスでのダブルクリックでの単語選択に対応
マウスでダブルクリックを行った際、マウスカーソルの下にある文字を検出して単語を選択する機能を追加
以上。
2016年7月12日火曜日
ST3 日本語環境向けプラグイン ConvertFullHalfWidth の解説
ConvertFullHalfWidth とは?
Sublime Text 3 向けのカタカナ・アルファベット・数字を全角半角文字に変換するプラグインです。github:SublimeConvertFullHalfWidth
※ 以前はConvertZenHanという名称で公開していましたが、同じような名前のプラグインがすでに公開されていたので変更しました。
なお、変換にはPyPIで公開されている jaconv を使用しています。
どうやってるの?
選択文字列とどの文字を変換対象にするかのフラグをプラグインのコマンドに渡し、フラグに従ってjacnonvに文字列を渡すだけ!今後の追加予定
jaconvにはひらがな→カタカナ、カタカナ→ひらがなの変換もあるのでこの変換も出来るように実装予定。/** 「もう仕事としてはガラケー特化のサイトなんて作らないよねー」っと思ってたらドンピシャでスマホサイトをガラケー向けに作り変えるお仕事来てプラグイン大勝利で震えたのはいい思い出。 */
以上。