[Date Prev] [Date Index] [Date Next]
[Thread Prev] [Thread Index] [Thread Next]

[xyzzy:08964] Q: CR、LF、改行コードの表示?



ふくしです。

現在会社で Unicode 対応 Windows エディタにおいて
EmEditor と xyzzy とどっちを推し進めるかが
勢力争いになってきました ;;;
自分としては UNIX では Emacs+Mule-UCS を使っているので
xyzzy を推したいんですが、、。

さて、EmEditor 派の意見として、

・EmEditor は CR、LF を、
 一方を↓、他方を←のように表示を変えることができるが、
 xyzzy はできない

という話がありました。


通常の考え方では、
ひとつの文書/文書群内で改行コードは統一するのがあたりまえで、
混在してること自体がそもそもおかしい、となると思いますが、
弊社は書き起こしを行わない翻訳会社で、
客先からファイルをお預かりする関係上どんなファイルが来るかわからず、
それを目視で判断できるのは確かに便利な機能です。

このような機能を xyzzy-Lisp でインプリメントすることは可能でしょうか?
当方 Lisp はぜんぜん入門していないのですが、
もしどなたかお知恵を拝借できれば幸甚です。


さて、

 CRで終わっている行です\r
 LFで終わっている行です\n
 CRLFで終わっている行です\r\n
 CRで終わっている行です\r
 LFで終わっている行です\n
 CRLFで終わっている行です\r\n

というファイルを xyzzy で見るとき、
改行=LF を明示的に指定すると、

 CRで終わっている行です^MLFで終わっている行です↓
 CRLFで終わっている行です^M↓
 CRで終わっている行です^MLFで終わっている行です↓
 CRLFで終わっている行です^M↓
 [EOF]

と見えます。これは論理的に正しい挙動だと思います。
ところが、改行=CR を明示的に指定すると、

 CRで終わっている行です↓
 LFで終わっている行です↓
 CRLFで終わっている行です↓
 CRで終わっている行です↓
 LFで終わっている行です↓
 CRLFで終わっている行です↓
 [EOF]

のように挙動します。これは、

 CRで終わっている行です↓
 LFで終わっている行です^JCRLFで終わっている行です↓
 ^JCRで終わっている行です↓
 LFで終わっている行です^JCRLFで終わっている行です↓
 ^J[EOF]

となるのが正しいような気がします。
また、改行=CRLF を明示的に指定すると、

 CRで終わっている行です^MLFで終わっている行です↓
 CRLFで終わっている行です^M↓
 CRで終わっている行です^MLFで終わっている行です↓
 CRLFで終わっている行です^M↓
 [EOF]

と見えます。(つまり、改行=LF 時と同じ挙動)これも、

 CRで終わっている行です^MLFで終わっている行です^JCRLFで終わっている行です↓
 CRで終わっている行です^MLFで終わっている行です^JCRLFで終わっている行です↓
 [EOF]

と見えるのが正しいのではないでしょうか。
(正しいから便利、とはいえないかもしれませんが・・・^^;;;

-- 
fukushi

Index Home