改行コードの扱いについて
テキストエディタをまた〜り語ろう ver.21 より。
284 From:名無しさん@お腹いっぱい。 Date:2006/11/01(水) 19:32:54 id:whd8EV0H0 Mail:sage
ファイル内で改行コードが CR だったり CR+LF だったりしても、行ごとの改行コードが
分かるよう表示してくれるエディタにはどんなものがあるでしょうか。
- -
285 From:名無しさん@お腹いっぱい。 Date:2006/11/01(水) 20:36:50 id:KeJsA1KH0 Mail:sage
普通にCRで開けばLFの文字コードが見えるんじゃない?
- -
286 From:名無しさん@お腹いっぱい。 Date:2006/11/01(水) 20:48:13 ID:32EtnkXF0 Mail:sage
>>284
サクラエディタが改行コードによって改行マークの形が変化したと思う。
- -
287 From:名無しさん@お腹いっぱい。 Date:2006/11/01(水) 23:11:18 ID:81tFawgo0 Mail:sage
>>284
自分が知る限りでは、サクラエディタとNotePad++がある。
NotePad++は[CR]とか[CR][LF]のような記号でちょっと格好悪いし、EUCコードは扱えないけどね。
- -
288 From:名無しさん@お腹いっぱい。 Date:2006/11/01(水) 23:18:59 id:hJba1K/q0 Mail:sage
xyzzy も CRLF と LF が混じったものを開けると基本の改行コー
ドが LF になって CR が ^M と表示されるな。
秀丸は全ての行が同じ改行コードに強引に変更されてしまう。
cygwin で diff を使っていて混在してしまっているときには強引
に統一してもらった方がいいから便利なんだが、それ以外のときは
まいった仕様だった。
サクラは CRLF と LF の違いはちょっとだけなんで、わざわざ別
に表示していることに気づいたときにはびっくりしたw
- -
289 From:名無しさん@お腹いっぱい。 Date:2006/11/01(水) 23:35:09 ID:0UgJcfE00 Mail:sage
>>284
真魚
- -
290 From:名無しさん@お腹いっぱい。 Date:2006/11/02(木) 00:07:07 id:cnzUtwRX0 Mail:sage
EmEditor もLF、CR、CRLFを区別できるよ。
Free 版もそうなのかは分からないけど…。
- -
291 From:名無しさん@お腹いっぱい。 Date:2006/11/02(木) 01:46:48 id:OnWkMaQ80 Mail:sage
>>289
真魚は行単位では表示してくれなかったと思うけど...
ファイルの改行コードを区別して表示はするが全行同じ改行マーク表示になる。
保存するときも、同じ改行コードに統一する。
ではなかったかな。
>>290
Free版では区別できない。
- -
292 From:名無しさん@お腹いっぱい。 Date:2006/11/02(木) 06:47:38 id:ZWMePY7L0 Mail:sage
SciTE
- -
293 From:名無しさん@お腹いっぱい。 Date:2006/11/02(木) 11:28:58 id:t1Ddf8h50 Mail:sage
K2Editorも矢印の形やステータスバーの表示で改行コードを確認可能
- -
294 From:名無しさん@お腹いっぱい。 Date:2006/11/02(木) 21:56:27 id:aVTZPDqJ0 Mail:sage
>>293
>>284は改行コードが混在したのを扱いたいようだが。
K2Editorは最初の行の改行コードに統一されてしまう。
- -
295 From:名無しさん@お腹いっぱい。 Date:2006/11/02(木) 22:05:04 id:OnWkMaQ80 Mail:sage
K2Editorは真魚と同じ理由で284の条件は満たしていないようだが...
- -
296 From:284 Date:2006/11/02(木) 23:59:39 id:aRHQBXPm0 Mail:sage
みなさん、参考にさせていただきました。
ありがとうございました。
サクラは LF は ←、CRLF は←↓という曲がった矢印で表示してくれるのですな。知らんかった。
CDocLine::m_cEol により、行単位で改行コードを保持しているようだ。
vim に比べるとサクラのソース構成はとてもわかりやすい。
ここでちょっと面白いものをみつけた。
union { unsigned char m_bAllMark; struct Mark_tag { unsigned m_bModify : 1; //変更フラグ unsigned m_bBookMark : 1; //ブックマーク unsigned m_bDiffMark : 3; //DIFF差分情報 } m_bMarkArray; } m_bMark;
m_bAllMark = 0/-1; で全フラグを設定できるし、シリアライズも楽になるのですな。
こういう共用体の使いかたは初めて見たような気がするが、もしかしたらけっこう常識だろうか。
もっともこれを使っているところは1箇所もなかったけど。