Visual Studioから時々次のように表示されます:
次のファイルの行末には一貫性がありません。行末を正規化しますか?
次に、Windows、Mac、Unix、およびいくつかのUnicodeなど、さまざまな標準または何かをドロップダウンします。
Yes
をクリックすると、これは何を意味し、どうなりますか?
それが通常意味するのは、キャリッジリターン/ラインフィードペア以外で終わる行があることです。多くの場合、Webページからコードエディターにコピーアンドペーストすると発生します。
行末を正規化することは、行末文字のすべてが一貫していることを確認することです。 1行が\r\n
で終わり、別の行が\r
または\n
で終わることを防ぎます。 1つ目はWindowsのラインエンドペアで、もう1つは通常MacまたはLinuxファイルに使用されます。
Visual Studioで開発しているので、ドロップダウンから「Windows」を選択するのは当然です。 :-)
いくつかの行は\n
で終わります。
他のいくつかの行は\r\n
で終わります。
Visual Studioでは、すべての行を同じにすることをお勧めします。
Visual Studio 2012を使用している場合:
メニューに移動ファイル→高度な保存オプション→行末を入力Windows(CR LF).
オプションのオン/オフを切り替えるには、メニューバーから以下の手順を実行します。
ツール→オプション→環境→ドキュメント→ロード時に一貫した行末をチェック
編集中のファイルは、同じ行末を使用しない他のエディターで編集されているため、行末が混在したファイルになります。
行末に使用されるASCII文字は次のとおりです。
CR、キャリッジリターン
LF、改行
Windows = CRLF
Mac OS 9以前= CR
Unix = LF
ウィキペディア newline article が役に立つかもしれません。抜粋は次のとおりです。
さまざまな改行規則により、さまざまなタイプのシステム間で転送されたテキストファイルが誤って表示されることがよくあります。たとえば、UnixまたはApple Macintoshシステムで作成されたファイルは、Microsoft Windowsで実行されている一部のプログラムで1つの長い行として表示される場合があります。逆に、Unixシステム上のWindowsコンピューターからのファイルを表示すると、追加のCRが^ Mまたは各行の終わり、または2番目の改行として表示される場合があります。
たとえば、テキスト行の一部は<Carriage Return><Linefeed>
(Windows標準)で終わり、一部は<Linefeed>
(Unix標準)で終わります。
[はい]をクリックすると、ソースファイルの行末がすべて同じ形式に変換されます。
これはコンパイラーに何の違いももたらしません(行末が単なる空白としてカウントされるため)が、他のツール(例えば、バージョン管理システムの「diff」)に多少の違いをもたらすかもしれません。
Visual Studioだけではありません...ファイル、コンパイラ、リンカなどを読み取るツールであれば、それを処理できる必要があります。
一般に(ソフトウェア開発の場合)、マルチプラットフォームの行末の問題を受け入れますが、バージョン管理ソフトウェアに対処させます。
ファイルが保存されるときに行末形式を変換するVisual Studio 2008のアドインがあります。ここからダウンロードできます: http://grebulon.com/software/stripem.php