일관되지 않은 줄 끝을 정규화하면 Visual Studio의 의미는 무엇입니까?


238

Visual Studio는 때때로 다음과 같이 말합니다.

다음 파일의 줄 끝은 일치하지 않습니다. 줄 끝을 정규화 하시겠습니까?

그런 다음 Windows, Mac, Unix 및 두 가지 유니 코드 표준과 같은 다른 표준 또는 무언가로 드롭 다운을 제공합니다.

이것이 무엇을 의미하며 클릭하면 Yes어떻게됩니까?


Visual Studio는 이와 동일한 메시지를 보여 주지만 참조하는 "파일"은 실제로 폴더입니다! 그게 무슨 뜻이야?!
대령 패닉

Delphi를 사용하더라도 유틸리티는 모든 Windows 소스 코드에서 작동하지만 특정 확장자 (* .c 또는 * .h와 같은)의 모든 파일에 대한 디렉토리 세트를 통해 전체 디렉토리 또는 재귀 적 으로이 작업을 수행하는 작은 유틸리티를 만들었습니다. 파일. 소스 코드에 이진 (exe)이 포함되어 있습니다. 추가 라인 피드 (즉, 캐리지 리턴 누락) 또는 추가 캐리지 리턴 (즉, 누락 된 라인 피드)이있는 라인을보고합니다. docs.google.com/file/d/0B07SrKpE8ErmbHZ1SWkxT3RLczA/…
Warren P

1
에 의해 발생할 수 있습니다 git. 참조 : stackoverflow.com/questions/170961/…
Jess

2
드롭 다운에 '파일 / 프로젝트의 나머지 부분에서 가장 일반적인 줄 끝 유형이 더 좋습니다'라는 옵션이 있어야합니다.
MetaGuru

답변:


213

일반적으로 캐리지 리턴 / 줄 바꿈 이외의 줄로 끝나는 줄이 있습니다. 웹 페이지에서 코드 편집기로 복사하여 붙여 넣을 때 종종 발생합니다.

줄 끝을 정규화하는 것은 모든 줄 끝 문자가 일치하는지 확인하는 것입니다. 한 줄이 끝나고 \r\n다른 줄 이 \r또는로 끝나는 것을 방지합니다.\n . 첫 번째는 Windows 라인 엔드 페어이고 다른 하나는 일반적으로 Mac 또는 Linux 파일에 사용됩니다.

Visual Studio에서 개발 중이므로 드롭 다운에서 "Windows"를 선택하고 싶을 것입니다. :-)


1
캐리지없이 줄이 어떻게 끝나는가?
MetaGuru

23
플립이 비주얼 스튜디오에서 라인의 끝을 어떻게 관리하는지, 왜 모든 다른 유형을 인식하는지, 그것은 행복하고 닥쳐 야합니다.
MetaGuru

53
아, 그러나 VS를 사용하여 Windows 이외의 것을 고치면 어떨까요? Linux 유틸리티 또는 간단한 C / C ++에 대한 빠른 수정 사항이며 CRLF를 추가하지 않으시겠습니까? 잠깐만, MS가 당신의 마음을 읽고 어떤 것을 사용해야하는지 알고 싶으십니까? <g> VS 팀은 어느 쪽이든 잘못 되었습니까? esh!
Ken White

6
스냅 켄, 리눅스에서 컴파일 할 파일을 편집하려고하면 컴파일러가 필요로하는 줄 끝이 없으면 컴파일러가 질식하고 죽는다는 것을 알고 있습니다. 다행 대 VS 선택할 수 ... 감사합니다!
MetaGuru

19
문제는 VS가 유닉스 라인 엔딩에 대처할 수 없다는 것이 아닙니다. 경고는 줄 끝이 일치하지 않음 을 나타냅니다. 즉 파일의 일부 줄은 CRLF이고 일부는 LF입니다. VS는 이에 대처하지만 툴 체인의 다른 응용 프로그램은 그렇지 않을 수 있으므로 경고합니다. 신경 쓰지 않는다면 옵션-> 환경-> 문서-> '로드시 일관된 줄 끝 검사'와 같은 경고를 끄십시오. 이 경고는 여러 플랫폼에서 제품을 작업 할 때 매우 유용합니다.
the_mandrill

75

일부 줄은로 끝납니다 \n.

다른 줄은으로 끝납니다 \r\n.

Visual Studio에서는 모든 줄을 동일하게 만들 것을 제안합니다.


40

Visual Studio 2012를 사용하는 경우 :

메뉴 파일고급 저장 옵션으로 이동줄 끝 유형을 Windows (CR LF) 로 선택하십시오 .


1
이 옵션은 Visual Studio 2010 Ultimate 버전 10.0.40219.1 SP1Rel의 파일 메뉴에 나타나지 않습니다.
DOK

1
@DOK, Visual Studio 2010 Premium 버전의 파일 메뉴에서 제공됩니다 !!
Peter

4
옵션이 보이지 않으면 도구-> 사용자 정의로 이동하여 명령 탭으로 이동하여 명령을 추가하여 파일 메뉴를 사용자 정의 할 수 있습니다.
Rob

모든 파일에 영향을주는 일반 설정이 있습니까? 솔루션의 모든 소스에 대해이 작업을 수행하는 것은 고통입니다.
클라우스

12

옵션을 켜거나 끄려면 메뉴 표시 줄 에서 아래 단계를 수행하십시오 .

도구옵션환경문서로드시 일관된 줄 끝 점검


7

편집중인 파일은 동일한 줄 끝을 사용하지 않는 다른 편집기로 편집되어 줄 끝이 혼합 된 파일이 만들어집니다.

줄 끝에 사용되는 ASCII 문자는 다음과 같습니다.

CR, 캐리지 리턴
LF, 줄 바꿈

Windows = CRLF
Mac OS 9 이하 = CR
Unix = LF


6

Wikipedia 줄 바꿈 기사 가 도움이 될 수 있습니다. 발췌문은 다음과 같습니다.

다른 줄 바꿈 규칙으로 인해 다른 유형의 시스템간에 전송 된 텍스트 파일이 잘못 표시되는 경우가 종종 있습니다. 예를 들어 Unix 또는 Apple Macintosh 시스템에서 시작된 파일은 Microsoft Windows에서 실행되는 일부 프로그램에서 하나의 긴 줄로 나타날 수 있습니다. 반대로, Unix 시스템의 Windows 컴퓨터에서 생성 된 파일을 볼 때 추가 CR은 ^ M 또는 각 줄의 끝 또는 두 번째 줄 바꿈으로 표시 될 수 있습니다.


5

예를 들어 일부 텍스트 줄은 <Carriage Return><Linefeed>(Windows 표준)으로 끝나고 일부는 <Linefeed>(유닉스 표준)으로 끝납니다 .

'예'를 클릭하면 소스 파일의 라인 끝이 모두 동일한 형식으로 변환됩니다.

이것은 줄 끝이 단순한 공백으로 간주되기 때문에 컴파일러와 아무런 차이가 없지만 다른 도구 (예 : 버전 제어 시스템의 'diff')와 약간의 차이가있을 수 있습니다.


4

그것은 단지 Visual Studio가 아닙니다 ... 파일, 컴파일러, 링커 등을 읽을 수있는 도구 일 것입니다.

일반적으로 (소프트웨어 개발을 위해) 우리는 멀티 플랫폼 라인 엔딩 문제를 받아들이지 만 버전 제어 소프트웨어가이를 처리하게합니다.


1
나는 동의한다. SCM 시스템에서 가장 잘 수행 할 수 있습니다. 당신은 SVN을 사용하는 경우도 볼 수 stackoverflow.com/questions/15687/...
kgriffs

전적으로 동의합니다. 프로젝트에서 작업 중이고 Windows에서 팀 동료가 Mac을 사용하는 경우 어떻게됩니까? 우리는 지속적으로 CR을 CRLF로 바꾸고 다시 돌아올 것입니다. SCM이이를 추상화하도록하는 것이 가장 좋습니다. 대부분의 답변은 사람들이 스스로 작업하거나 코드 작업을하는 모든 사람이 Windows를 사용한다고 가정합니다.
bytedev

3

웹에서 붙여 넣기를 할 때 줄 끝이 일치하지 않을 수 있습니다.
이 문제를 해결하기 위해 Visual Studio 확장명 "Line Endings Unifier"를 사용하면 파일을 저장하는 동안 줄 끝이 자동으로 일관성을 유지할 수 있습니다.

여기에 이미지 설명을 입력하십시오


2

파일이 저장 될 때 줄 끝 형식을 변환하는 Visual Studio 2008 용 추가 기능이 있습니다. http://grebulon.com/software/stripem.php에서 다운로드 할 수 있습니다.


svn에서 "일관되지 않은 줄 끝"오류가 발생할 때 도움이됩니다.
kgriffs
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.