彼らは、すべてのファイルが末尾の改行文字で終わるようにしようとしていると思います。これは、空白行、別名空の改行で終わるのとは異なります。
編集:@Easy Angelがコメントで簡潔に明確にしたように:末尾の改行="\n"および空白行="\n \ n"
私はどちらかだと思います:
あなたのリードは、すべてのファイルが改行文字で終わることを義務付けていますが、すべてのファイルが空白行(つまり、改行で終わる空の行)で終わることを義務付けていると誤解されています。
彼らは、すべてのファイルの終わりを空白行(別名、改行で終わる空の行)で終了することを実際に義務付けることによって、すべてのファイルが改行文字で終わるようにしようとしています。 ?)。
エディターが実際に改行記号を表示しない限り、一部のエディターではファイルが常に明確であるとは限りません。
- 改行をまったく終了しません、
- 末尾の改行が1つで終わる、または
- 空白の改行、つまり2つの末尾の改行で終了します
最近のほとんどのソースコードエディタは、末尾に改行を挿入していると思います。ただし、古いより一般的なエディターを使用する場合は、ソースコードファイル(および一般的なテキストファイル)が常に末尾の改行で終わるようにします(エディターによっては、空白行/空の改行として表示されることがあります)。使用)理由:
コマンドラインでファイルを表示するために使用cat
する場合、ファイルに末尾の改行がない場合、次の出力(シェルプロンプトやスクリプトがファイル間で出力する可能性のある視覚的な区切り文字など)は、最後の非改行文字の直後に表示されます。改行から始めるのではなく。一般に、末尾の改行により、ファイルはよりユーザーフレンドリーでスクリプトフレンドリーになりました。
一部の編集者(詳細は思い出せません)は、テキストファイルに改行がない場合、末尾に改行を自動的に挿入すると思います。これにより、ファイルが変更されたように見えます。多数のファイルを別のウィンドウで開いてからすべてを閉じると、混乱する可能性があります。エディタは保存を求めるプロンプトを表示しますが、ファイルに「実際の変更」を加えたのか、それとも自動で行ったのかがわかりません。改行を挿入しました。
のようないくつかのツールdiff
といくつかのコンパイラは、末尾の改行が欠落していることについて文句を言います。これは、ユーザーやツールが対処しなければならない可能性のあるノイズです。
編集:
編集者が改行を追加し、ファイルの最後に改行と空白の改行があるかどうかを確認できないことについて、Vim、Eclipse、およびEmacsをテストしました(Cygwinを使用するWindowsシステムで):「」と入力して新しいファイルを開きましたh'' e'' l'' l''o'そして[ENTER]を押さずに保存されます。各ファイルを。で調べましたod -c -t x1
。
- Vim は 末尾に改行を追加しました。
- Emacs は 末尾に改行を追加しました。
- Eclipseは末尾の改行を追加 しませんでした。
だが
- Vimでは、「hello」の下の空白行にカーソルを合わせることができませんでした。
- Emacsでは、「hello」の下の空白行にカーソルを合わせることができました。
- Eclipseでは、「hello」の下の空白行にカーソルを合わせることができませんでした。
好きなように解釈してください。
私の個人的な習慣は、テキストファイルが末尾の改行で終わるようにすることです。驚き最小の原則があると感じています。これが当てはまるツールです。この点で、ソースファイルをテキストファイルと異なるものとして扱うことはありません。
グーグルはこれを明らかにします:
これは、この編集の時点で、Cコンパイラ、svn(diffのため)、diffなどからの末尾の改行が欠落していることに関する警告について説明するヒットを表示します。テキストファイル(ソースファイルを含む)がで終わるという一般的な期待があると思います。末尾の改行で、そこにある傾向がある場合は最も驚くべきことではありません(そしてノイズが少なくなります)。
最後に、これは興味深いです:
末尾に改行がないファイルをサニタイズする
テキストファイルでは、すべての行を改行文字(つまり、\ n)で終了する必要があります。これはPOSIXによって述べられており、テキストファイルは
0行以上に編成された文字を含むファイル。
次に、行は次のように定義され
ます。*0個以上の非文字と終了文字のシーケンス。
しかし、そうは言っても、これは私の個人的な習慣にすぎません。私の意見を質問する人に喜んで共有しますが、私はこれを誰にも押し付けません。私がここで言うように、これは義務付ける価値のあるものではないと思います:
私は一貫性を保つためのすべての人ですが、スタイルのあらゆるビットをマイクロ管理することにも反対しています。コーディング規約の膨大なリストを持つことは、特にそれらのいくつかが恣意的であるように思われる場合、人々がそれらに従うことを思いとどまらせるものの一部です。コーディングガイドラインは、-ilitiesを改善する最も価値のあるプラクティスに合理化されるべきだと思います。この慣行を義務付けることにより、読みやすさ、保守性、パフォーマンスなどはどの程度向上しますか?