MigemoをUTF-8化する
Migemoはローマ字から直接日本語を検索するすげえツールなのだが、開発停止されているようだ。というかもう完成されたソフトウェアなんだろうね。今に至るまで10年近くずーっと愛用している。
ただ、文字コードがEUC-JPのみってのがイケてない。今時UTF-8だろ?てなわけでパッチ。「-U」オプションをつけるとUTF-8で出力してくれるぞ。あっさりnkfをかましてるだけ。明白。
MigemoをUTF-8化しないと w3m で system_charset = UTF-8 にした状態だとMigemoが効かないのだ。
diff --git a/bin/migemo b/bin/migemo index 5eacf81..22c1121 100755 --- a/bin/migemo +++ b/bin/migemo @@ -44,6 +44,7 @@ Usage: migemo [OPTION] -s, --separator=STRING Insert String to each regular expression. -n, --nocache Don't use caches. -l, --logging=FILE Log patterns to FILE. + -U, --utf-8 UTF-8 output instead of EUC-JP. " end @@ -61,7 +62,8 @@ def parse_options ['--insert', '-i', GetoptLong::REQUIRED_ARGUMENT], ['--separator', '-s', GetoptLong::REQUIRED_ARGUMENT], ['--logging', '-l', GetoptLong::REQUIRED_ARGUMENT], - ['--nocache', '-n', GetoptLong::NO_ARGUMENT]) + ['--nocache', '-n', GetoptLong::NO_ARGUMENT], + ['--utf8', '-U', GetoptLong::NO_ARGUMENT]) parser.each_option do |name, arg| options[name.sub(/^--/, "")] = arg @@ -156,7 +158,11 @@ def main regex_str = [regex_str1, regex_str2].join(bar) end - puts regex_str.kconv(Kconv::EUC, Kconv::UTF8) + if options['utf8'] + puts NKF.nkf("-Ew", regex_str) + else + puts regex_str + end puts options['separator'] if options['separator'] logger.puts(pattern) if logger end