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