web-dev-qa-db-ja.com

一貫性のない行末を正規化すると、Visual Studioはどういう意味ですか?

Visual Studioから時々次のように表示されます:

次のファイルの行末には一貫性がありません。行末を正規化しますか?

次に、Windows、Mac、Unix、およびいくつかのUnicodeなど、さまざまな標準または何かをドロップダウンします。

Yesをクリックすると、これは何を意味し、どうなりますか?

229
MetaGuru

それが通常意味するのは、キャリッジリターン/ラインフィードペア以外で終わる行があることです。多くの場合、Webページからコードエディターにコピーアンドペーストすると発生します。

行末を正規化することは、行末文字のすべてが一貫していることを確認することです。 1行が\r\nで終わり、別の行が\rまたは\nで終わることを防ぎます。 1つ目はWindowsのラインエンドペアで、もう1つは通常MacまたはLinuxファイルに使用されます。

Visual Studioで開発しているので、ドロップダウンから「Windows」を選択するのは当然です。 :-)

202
Ken White

いくつかの行は\nで終わります。

他のいくつかの行は\r\nで終わります。

Visual Studioでは、すべての行を同じにすることをお勧めします。

72
Alex Reitbort

Visual Studio 2012を使用している場合:

メニューに移動ファイル高度な保存オプション行末を入力Windows(CR LF).

40
pankaj

オプションのオン/オフを切り替えるには、メニューバーから以下の手順を実行します。

ツールオプション環境ドキュメントロード時に一貫した行末をチェック

11
CodingYoshi

編集中のファイルは、同じ行末を使用しない他のエディターで編集されているため、行末が混在したファイルになります。

行末に使用されるASCII文字は次のとおりです。

CR、キャリッジリターン
LF、改行

Windows = CRLF
Mac OS 9以前= CR
Unix = LF

7
monowerker

ウィキペディア newline article が役に立つかもしれません。抜粋は次のとおりです。

さまざまな改行規則により、さまざまなタイプのシステム間で転送されたテキストファイルが誤って表示されることがよくあります。たとえば、UnixまたはApple Macintoshシステムで作成されたファイルは、Microsoft Windowsで実行されている一部のプログラムで1つの長い行として表示される場合があります。逆に、Unixシステム上のWindowsコンピューターからのファイルを表示すると、追加のCRが^ Mまたは各行の終わり、または2番目の改行として表示される場合があります。

6
Richard Everett

たとえば、テキスト行の一部は<Carriage Return><Linefeed>(Windows標準)で終わり、一部は<Linefeed>(Unix標準)で終わります。

[はい]をクリックすると、ソースファイルの行末がすべて同じ形式に変換されます。

これはコンパイラーに何の違いももたらしません(行末が単なる空白としてカウントされるため)が、他のツール(例えば、バージョン管理システムの「diff」)に多少の違いをもたらすかもしれません。

5
ChrisW

Visual Studioだけではありません...ファイル、コンパイラ、リンカなどを読み取るツールであれば、それを処理できる必要があります。

一般に(ソフトウェア開発の場合)、マルチプラットフォームの行末の問題を受け入れますが、バージョン管理ソフトウェアに対処させます。

4
Peter Y

ファイルが保存されるときに行末形式を変換するVisual Studio 2008のアドインがあります。ここからダウンロードできます: http://grebulon.com/software/stripem.php

2
grebulon

コピーしてWebから何かを貼り付けると、一貫性のない行末が表示される場合があります。
これを修正するために、Visual Studio拡張機能「Line Endings Unifier」を使用して、ファイルの保存中に自動的に行末を一致させることができます。

enter image description here

2
Jay Shah