webdevqa.jp.net

Notepad ++の改行は、空のファイル(Windowsエクスプローラーで作成された0バイトのテキストファイル)を開くときにのみCRを挿入します

背景:phpページの一部が解析を停止したが、サーバーにアップロードされたときにのみ、非常に奇妙な問題が発生しました。ローカルで正常に動作します。それが途切れた部分は、コメントされたコード行の後でした。次のコメントまで解析したコメントを削除しました。

問題は行末であることが判明しました。それらはLFなしのCRのみであり、* nixであるサーバーはCRのみを改行として認識しないため、コメントはファイルの残りの部分全体に拡張されていると解釈されました。

Notepad ++内で(「すべての文字を表示」をオンにした後)新しいファイルを作成して、Enterキーを押してみました。 CRLFを示しました。

次に、Windowsエクスプローラー(Win7 x64)で新しいテキストファイルを作成し、それをNotepad ++で開きました。 Enterキーを押すと、LFではなくCRのみが挿入されました。

さて、実際の質問はなぜですか?私の知る限り、WindowsはCRだけでなくCRLFに基づくべきです。また、Notepad ++で常にCRLFを使用する方法、または少なくとも0バイトのファイルでCRLFを想定する方法はありますか?

3
Davy8

長さがゼロのファイルを開くときは、最後に開いたファイルの行末を使用します。だから私はさまざまな結果を得ていました。

2
Davy8

ファイルの一部がWindows形式で、一部がMac形式である理由はわかりませんが [編集]-> [EOL変換]-> [Windows形式]を選択するのと同じくらい簡単で、ファイル全体をCRLFに変換する必要があります。 Notepad ++は、開かれるファイルで使用されている形式を使用します。 AFAIK、それを強制する方法はありません。 1つのオプションは、ファイルを開いたときに何を扱っているかがわかるように、行末文字を表示することです([表示]-> [記号を表示]-> [行末を表示])。

5
MBraedley

[新しいドキュメント/デフォルトディレクトリ]設定タブで、新しいファイルのデフォルトのEOL形式を設定できます。デフォルトはWindowsだと思いますが、Mac形式に設定されている場合は、0バイトのファイルにCRを使用したのかもしれません。

0
Velociraptors