秀丸英語版 Maruo4.16 でのグレップNo.19200
マボカル さん 05/04/22 23:05
 
こんにちは。マボカルと申します。秀丸英語版は Windows98 の頃から
使っていましたが、私の場合 韓国語Windows+秀丸英語版 という環境
でした。当時のバージョン(詳しいバージョンは忘れましたが)では
韓国語の表示も検索も上手く行かず、秀丸英語版を使う理由は日本語
で書かれたテキストファイルの内容を確認するぐらいに使っていま
した。OSが韓国語Windowsですからウインドウズに入っているノート
パッドで開いたりすると、文字化けしてしまうからです。

時々ファイルの編集などもしましたが、肝心の検索が文字コードの影響
で検索できない部分が多く、アスキーコードのみを対象に編集を行って
いました。その当時はOSが日本語Windowsではない限り、ほとんど使い
物にならないといってもいいような状況でした。それでも使っていた
理由は先ほど述べた日本語で書かれたテキストファイルをすぐに確認
したり、検索に正規表現が使えるという大きな魅力があったからです。

2・3年前から韓国語XPに変えてからは秀丸英語版の使い勝手が飛躍的
に上がったと思います。当時の秀丸英語版もこれまたバージョンはよく
覚えていませんが、今まで文字コードの問題で出来ないと諦めていた
ことも可能になった部分が多く、非常に満足して使っています。昔は
どうしても秀丸の機能を使いたい場合は、いちいち日本語Windowsの
入っているコンピューターで作業をしていたからです。

現在は秀丸英語版で韓国語の表示は勿論、検索も自由に行えますが、
グレップの機能だけは満足にいかない部分があります。どういう部分
かというと、日本語でも韓国語でもグレップ検索の場合現在開かれて
いるファイルに対しては一部検索可能ですが、フォルダーを指定して
行う場合は、ほとんどの場合、検索結果が0となります。現在開かれて
いるファイルに対して一部検索可能というのは、アスキーコードを
除く2バイト文字でグレップ検索を行った場合、検索可能な文字列と
検索不可能な文字列があるということです。

具体的にどういった文字列があるのかは詳しく調べていませんが、
例えば「その他」という文字列は現在開いているファイルでのグレップ
検索では可能ですが、同じ検索方法で検索文字を「マクロ」や「戻る」
などにした場合では、明らかにその文字列が含まれているのにも関わら
ず検索結果が0となります。ファイルを指定してグレップを行う場合は
現在開いているファイルでは可能だった「その他」という文字列でも
検索できません。検索後が韓国語の場合でも同じようなことが言えます。

明らかに検索した文字列が含まれているのにも関わらず検索結果が0と
なるのは、検索の段階で検索文字が文字化を起こしているためです。
グレップ検索の場合、普通の検索と違ってOSの文字コードの影響を
受けていると思うのですが、将来的にこのような問題を解決できる
ことはできるのでしょうか。上記の私の説明でよく分からない部分が
ありましたら、おっしゃってください。私もこの件に関して初めて
投稿するので、何をどのように説明すれば、私の言いたいことが伝わる
のかよく分からない状況です。




[ ]
RE:19200 秀丸英語版 Maruo4.16 でのグレNo.19210
秀丸担当 さん 05/04/25 17:30
 

英語版秀丸は、メニューやダイアログなどが英語になっただけで、機能は日本語
版秀丸と同じです。
秀丸のgrepは、エンコードの種類の自動判定はできますが、日本語しか判定でき
ません。(Shift-JIS,EUC,JIS,Unicode)
エンコードの種類を明示的に指定可能なようにすれば、可能にできるかもしれま
せんが、現時点ではできません。
今後の開発の課題としたいと思います。

[ ]
RE:19210 秀丸英語版 Maruo4.16 でのグレNo.19213
マボカル さん 05/04/26 00:26
 
コメントありがとうございます。

>秀丸のgrepは、エンコードの種類の自動判定はできますが、日本語しか判定でき
>ません。(Shift-JIS,EUC,JIS,Unicode)

結局私の環境(韓国版XP+秀丸英語版)において、現在開かれている
ファイルでグレップが成功したり、フォルダー設定でのグレップが
失敗したりするのは、現在開かれているファイルではエンコードの
種類が明示的に指示された状態であり、フォルダー設定によるグレップ
がエンコードの判断不可能によるところが大きいのでしょうか。

ちなみにテストで行っているファイルはUnicodeで書かれた日本語の
ファイルでありますが、現在開かれているファイルに対して行う
グレップで成功する場合と失敗する場合の原因を自分なりに分析すると
韓国語コードに含まれるひらがなや、一部日本語の漢字と一致する(
旧字体・新字体の区別の無いもの)ものが検索語の場合に限って
グレップが可能なようです。

>エンコードの種類を明示的に指定可能なようにすれば、可能にできるかもしれま
>せんが、現時点ではできません。
>今後の開発の課題としたいと思います。

是非とも参考にしていただきたいと思います。秀丸英語版を利用する
人はどういう人がどのような環境でどのような目的のために利用して
いるのかは分かりませんが、少なくとも私の場合、日本語Windowsが
使えない環境で秀丸の機能をどうしても使いたいからだと言えます。

日本語Windowsの環境であれば、そもそも英語版秀丸を使わなくても
いいわけですし、何も問題にならないと思います。日本語Windows以外
の、例えば韓国語Windows環境で、韓国語のプログラムを使用しながら
なおかつ秀丸の機能も利用したい人にとって、秀丸英語版は本当に
頼りになる存在です。

英語版秀丸の場合、日本語以外のOSでどのような動きになるのかと
いった部分に注目して開発を進めていけば、あらゆる目的を持った、
あらゆる環境下にあるユーザーにとって、より利用しやすいエディタ
となることは間違いありません。ご参考までに。

[ ]
RE:19213 秀丸英語版 Maruo4.16 でのグレNo.19219
秀丸担当 さん 05/04/26 16:54
 

>結局私の環境(韓国版XP+秀丸英語版)において、現在開かれている
>ファイルでグレップが成功したり、フォルダー設定でのグレップが
>失敗したりするのは、現在開かれているファイルではエンコードの
>種類が明示的に指示された状態であり、フォルダー設定によるグレップ
>がエンコードの判断不可能によるところが大きいのでしょうか。

現在開いているファイルのエンコードの種類と、grepでのエンコードの種類の解
析は別です。
grepでは、日本語(正確にはShift-JISにある文字コード)のみが検索できます。
Unicodeで保存したファイルであれば、ファイル内にある日本語や英数字は検索
できると思いますが、韓国語はできません。

[ ]
RE:19219 秀丸英語版 Maruo4.16 でのグレNo.19220
マボカル さん 05/04/27 00:00
 
秀丸担当さん

ありがとうございます。

>grepでは、日本語(正確にはShift-JISにある文字コード)のみが検索できます。
>Unicodeで保存したファイルであれば、ファイル内にある日本語や英数字は検索
>できると思いますが、韓国語はできません。

韓国語OSと内部コードと秀丸との関係の参考になるかと思い、面白い例
を記しておきます。動作環境が重要ですからもう一度説明すると・・

OS:韓国語XP(言語設定など変えずに、韓国のプログラムが使える状態)
プログラム:秀丸英語版 Maruo416
使用ファイル:Unicodeで保存した日本語・韓国語混在のファイル
グレップ:現在開かれているファイル

という環境で色々と試したところ、韓国語ができないというわけでは
ありません。一部ちゃんと検索してくれてグレップ可能な韓国語
があります。どういった韓国語がOKでどういった韓国語がダメなの
かはその基準が分かりませんが、とにかく韓国語でもOKなものが
あるのは事実です。

逆に日本語の場合もグレップ可能な日本語とダメな日本語があります。
日本語だからといって全てがOKなのではなく、なぜか一部グレップ
できない日本語もあるのです。

私が以前のレスで「韓国語コードに含まれるひらがなや、一部日本語の
漢字と一致する(旧字体・新字体の区別の無いもの)ものが検索語の
場合に限ってグレップが可能なようです。」と書きましたが、日本語でも
グレップ可能なものと不可能な文字があるということは、韓国語コードと
何らかの関係のありそうでならないのです。

例えば

学/學
悪/惡
真/眞

の新字体と旧字体のペアがあるものでグレップのテストを行ってみると
よくわかります。日本語のコードには新字体と旧字体とも含まれていま
すが、韓国語は漢字を使う場合でも旧字体のみを使うので、韓国語の
コード中の漢字は上のペアのうちの右側の部分の漢字のみが入っています。

もし私の環境でも日本語は無条件にグレップ可能であれば、上のペアの
両方ともグレップが成功されるべきですが、実際には旧字体のほうの
漢字でのみグレップが可能で、新字体のほうでグレップを行うと失敗
します。その場合、明らかにファイルに存在する文字なのに結果が0に
なるというような失敗というより、それ以前に警告文が出てエラーを
知らせてくれます。この警告文は文字化けしていて、何を警告している
のかはよく分かりませんが、とにかくグレップが失敗に終わります。

以上のように韓国語でも一部グレップできる文字があること、日本語の
場合でも韓国語の文字コードに含まれる漢字の旧字体を使ったグレップ
がOKで、韓国語の文字コードには含まれない新字体がダメだという点
からみて、韓国語のコードの影響があると思えるのです。

Unicodeで保存したファイルでもグレップの場合、結局はOSの言語環境
によるものが大きいようです。でもXPって基本的にユニコード体系に
なっているんじゃないんでしょうか?この辺りはよく分かりませんが、
グレップのテスト結果を見ると、Unicodeというより韓国語のコードの
影響をすごく感じます。



[ ]
RE:19220 秀丸英語版 Maruo4.16 でのグレNo.19222
秀丸担当 さん 05/04/27 12:38
 

>の新字体と旧字体のペアがあるものでグレップのテストを行ってみると
>よくわかります。日本語のコードには新字体と旧字体とも含まれていま
>すが、韓国語は漢字を使う場合でも旧字体のみを使うので、韓国語の
>コード中の漢字は上のペアのうちの右側の部分の漢字のみが入っています。

こちらで確認したところ、新字体も旧字体もgrepすることができました。
OSの違いによる標準のコードページ変換テーブルに違いがあるのかもしれなくて
それが影響しているかもしれないです。
ちなみにコードページ変換テーブルは、[コントロールパネル]→[地域と言語の
オプション]→[詳細設定]に相当する部分で確認/指定をすることができます。
文字化けした警告文が出るとのことですが、どのような感じの警告文でしょうか。
文章で伝えるのは難しいかもしれないですが、特徴的なことを教えていただける
と助かります。

[ ]
RE:19222 秀丸英語版 Maruo4.16 でのグレNo.19238
マボカル さん 05/04/28 02:41
 
秀丸担当さん

ありがとうございます。

>こちらで確認したところ、新字体も旧字体もgrepすることができました。
>OSの違いによる標準のコードページ変換テーブルに違いがあるのかもしれなくて
>それが影響しているかもしれないです。

その点はこちらでも確認できている部分で、私の質問の趣旨は、日本語
OSでない他の言語のOS環境において、日本語OSのような秀丸の
動きをできるだけ再現できないかという点にあります。

>ちなみにコードページ変換テーブルは、[コントロールパネル]→[地域と言語の
>オプション]→[詳細設定]に相当する部分で確認/指定をすることができます。

コードページ変換テーブルによって解決できるのなら、そもそも今回の
質問はしていません。韓国語OSの環境において、他の韓国語のプログ
ラムを使用しながら、同時に秀丸の機能を利用したいということが
大前提で、もしコードページ変換テーブルによる方法で解決するのなら
他の日本語Windowsが入っているコンピューターで作業をすることや、
マルチブッティングで日本語Windowsを同時にインストールした状態で
作業にあわせてOSを変えることと同じことです。

>文字化けした警告文が出るとのことですが、どのような感じの警告文でしょうか。
>文章で伝えるのは難しいかもしれないですが、特徴的なことを教えていただける
>と助かります。

確認できる文字列は * * ? のようなもので、あとはハングルで文字
化けしています。参考になるかはわかりませんが、以下にリンクを
張っておきます。

http://home.freechal.com/majima/03/1/28306971

警告文のことでこの際報告いたしますが、英語版秀丸でも上の文字化
けした警告文のように、警告文自体が完全に英語表記になっていない
部分(日本語表記のままの部分)がいくつかあると思います。次の
バージョンアップではその点も改善の余地があると思います。ご参考
までに。



[ ]
RE:19238 秀丸英語版 Maruo4.16 でのグレNo.19240
秀丸担当 さん 05/04/28 10:51
 

>その点はこちらでも確認できている部分で、私の質問の趣旨は、日本語
>OSでない他の言語のOS環境において、日本語OSのような秀丸の
>動きをできるだけ再現できないかという点にあります。

コードページ変換テーブルは、日本語のコードページ変換テーブルをインストー
ルしていても、韓国語のアプリケーションには影響を与えないと思います。
932番の日本語がチェックされていれば、Unicodeファイル内の日本語のgrepはで
きると思います。
ちなみに日本語XPでは932番も949番の韓国語も、両方ともチェックされていて、
チェック状態を変更することはできない状態でした。
韓国語XPではチェック状態を変更できるのか確認できていませんが、チェックさ
れていなければ、チェックしておくに越したことはありません。

極端な話、コードページ変換テーブルはチェックできるところはみんなチェック
してしまえば、より各国語対応に安全なシステムとなり、それでいて既存のアプ
リケーションにも影響は与えません。
「Unicodeアプリケーションでないプログラムの言語」に相当する部分を変える
と、既存の韓国語アプリケーションにも影響を与えてしまうので、ここは韓国語
のままのほうがいいと思います。


>確認できる文字列は * * ? のようなもので、あとはハングルで文字
>化けしています。参考になるかはわかりませんが、以下にリンクを
>張っておきます。

ありがとうございます。
見た感じから察するに HmJre.dll のエラーで、
「|の前後の文字が無いか、または+ * ?の直前に文字がありません。」
が韓国語に文字化けしているようです。
grep時に正規表現がチェックされていて、正規表現として問題のある文字列を検
索したか、あるいは韓国語が正規表現的に解釈すると問題のあるように解釈され
ているのかもしれません。
HmJre.dll関連のエラーは英語には対応していなかったのです。参考にさせてい
ただきます。

[ ]
RE:19240 秀丸英語版 Maruo4.16 でのグレNo.19241
マボカル さん 05/04/28 19:50
 
秀丸担当さん

コメントありがとうございます。

>932番の日本語がチェックされていれば、Unicodeファイル内の日本語のgrepはで
>きると思います。

基本的なOSの違いにより、932番の日本語がチェックされていても
Unicodeファイル内の日本語が全てグレップ検索できるわけではあり
ません。以前に申し上げたように韓国語のコードにも存在する旧漢字の
「學」「惡」「眞」のような検索語ではOKですが、韓国語のコードに
存在しない新字体の「学」「悪」「真」などの検索語ではグレップが
失敗します。英語版のXPがあれば、言語設定を韓国語の環境に変えて
検索してみると分かると思います。

>ちなみに日本語XPでは932番も949番の韓国語も、両方ともチェックされていて、
>チェック状態を変更することはできない状態でした。
>韓国語XPではチェック状態を変更できるのか確認できていませんが、チェックさ
>れていなければ、チェックしておくに越したことはありません。

私のほうの韓国語XPでも932番も949番の韓国語も、両方ともチェックされていて、
チェック状態を変更することはできない状態でした。この
部分は日本語XPでも韓国語XPでも同じ設定のようです。




[ ]
RE:19241 秀丸英語版 Maruo4.16 でのグレNo.19260
秀丸担当 さん 05/05/02 12:21
 

>基本的なOSの違いにより、932番の日本語がチェックされていても
>Unicodeファイル内の日本語が全てグレップ検索できるわけではあり
>ません。以前に申し上げたように韓国語のコードにも存在する旧漢字の
>「學」「惡」「眞」のような検索語ではOKですが、韓国語のコードに
>存在しない新字体の「学」「悪」「真」などの検索語ではグレップが
>失敗します。英語版のXPがあれば、言語設定を韓国語の環境に変えて
>検索してみると分かると思います。

最初から確認すれば良かったのですが、日本語XPにおいても、コントロールパネ
ルの「Unicodeアプリケーションでないプログラムの言語」を韓国語にすると、
再現させることができました。
grepのダイアログの文字列の取得部分で、違いが発生していたようです。
いずれにしても、今後の課題としたいと思います。

[ ]
RE:19260 秀丸英語版 Maruo4.16 でのグレNo.19263
マボカル さん 05/05/02 12:57
 
秀丸担当さん

ありがとうございます。

>最初から確認すれば良かったのですが、日本語XPにおいても、コントロールパネ
>ルの「Unicodeアプリケーションでないプログラムの言語」を韓国語にすると、
>再現させることができました。

私の言わんとしていることが伝わったようでよかったです。

>grepのダイアログの文字列の取得部分で、違いが発生していたようです。
>いずれにしても、今後の課題としたいと思います。

これからも英語版秀丸についてのバグ報告を続けていきたいと思います
ので、対応できる部分であれば、どんどん改良されていくことを期待
します。


[ ]