Unicode 対応 mg

昔から使っている mg という文字列検索コマンドを2年ぶりに更新しました。

https://github.com/kaz-utashiro/mg

今回の変更点は以下の通り。

  • ファイルのデフォルト文字コードを utf8 にした。
  • ファイルのコード指定には -j オプションを使用する。
  • コードの自動判定を行う場合には -j Guess を指定する。

もしかすると、今まで Unicode 対応したことをアナウンスしていなかったかもしれません。基本的な機能は大きく変わっていませんが、Unicode 対応したことで検索文字列の指定にはかなり柔軟性が出てきたはずです。

Unicode 対応は、まだ実験的なコードとして実装されているため、他の機能と整合がとれていないこともあります。マニュアルの対応も完全ではないので注意してください。

2年前に書きかけた記事があったので、暇ができたら更新して公開します。



2013.10.23 追記:
オプションに -j を使うのはやめて、--icode と --ocode というオプションを作りました。

ファイルコードを指定 --icode=euc-jp
指定したコードから自動判定 --icode=euc-jp,jis
(区切りはスペースでもいい) --icode="euc-jp jis"
(複数指定してもいい) --icode=euc-jp --icode=jis
デフォルトのコードから自動判定 --icode=guess
デフォルトのコードに追加して自動判定 --icode=+euc-kr

当たり前かも知れませんが、Unicode に対応したことで日本語以外のテキストにも使えるようになりました。ちょっと感動です。



2013.10.24 追記:
バイナリファイルを検索する -B オプションと、テキストファイルだけを検索する -T オプションは、Unicode 対応機能と整合性が悪いため廃止しました。