O Visual Studio ocasionalmente me diz:
As terminações de linha nos arquivos a seguir não são consistentes. Deseja normalizar as terminações de linha?
Em seguida, é apresentada uma lista suspensa com padrões diferentes ou algo assim, como Windows, Mac, Unix e alguns Unicode.
O que isso significa e o que acontecerá se eu clicar Yes
?
visual-studio
line-endings
MetaGuru
fonte
fonte
git
. Veja também: stackoverflow.com/questions/170961/…Respostas:
O que isso normalmente significa é que você tem linhas que terminam com algo diferente de um par de retorno de carro / avanço de linha. Isso geralmente acontece quando você copia e cola de uma página da web no editor de código.
Normalizar as terminações de linha é apenas garantir que todos os caracteres de final de linha sejam consistentes. Impede que uma linha termine em
\r\n
e outra termine com\r
ou\n
; o primeiro é o par final de linha do Windows, enquanto os outros normalmente são usados para arquivos Mac ou Linux.Como você está desenvolvendo no Visual Studio, obviamente você desejará escolher "Windows" na lista suspensa. :-)
fonte
Algumas linhas terminam com
\n
.Algumas outras linhas terminam com
\r\n
.O Visual Studio sugere que você faça com que todas as linhas terminem da mesma forma.
fonte
Se você estiver usando o Visual Studio 2012:
Vá para o menu Arquivo → Opções avançadas de salvamento → selecione Tipo de final de linha como Windows (CR LF) .
fonte
Para ativar / desativar a opção, siga as etapas abaixo na barra de menus :
Ferramentas → Opções → Ambiente → Documentos → Verificar finais de linha consistentes ao carregar
fonte
O arquivo que você está editando foi editado com outro editor que não usa as mesmas terminações de linha, resultando em um arquivo com final de linha mista.
Os caracteres ASCII em uso para terminações de linha são:
CR, retorno de carro
LF, alimentação de linha
Windows = CRLF
Mac OS 9 ou anterior = CR
Unix = LF
fonte
O artigo de nova linha da Wikipedia pode ajudá-lo. Aqui está um trecho:
fonte
Isso significa que, por exemplo, algumas de suas linhas de texto com a
<Carriage Return><Linefeed>
(padrão do Windows) e outras terminam com apenas a<Linefeed>
(padrão do Unix).Se você clicar em 'sim', o final das linhas no seu arquivo de origem será convertido para ter o mesmo formato.
Isso não fará nenhuma diferença para o compilador (porque o fim de linhas conta como mero espaço em branco), mas pode fazer alguma diferença para outras ferramentas (por exemplo, o 'diff' no seu sistema de controle de versão).
fonte
Não é apenas o Visual Studio ... Seria qualquer ferramenta que lesse os arquivos, compiladores, vinculadores etc. que precisaria ser capaz de lidar com isso.
Em geral (para desenvolvimento de software), aceitamos o problema de final de linha multiplataforma, mas deixamos o software de controle de versão lidar com isso.
fonte
Ao copiar e colar algo da Web, você pode obter as terminações de linha inconsistentes.
Para corrigir isso, você pode usar a extensão do Visual studio "Line Endings Unifier", que pode tornar a conclusão da linha consistente automaticamente ao salvar o arquivo.
fonte
Há um suplemento para o Visual Studio 2008 que converte o formato de fim de linha quando um arquivo é salvo. Você pode baixá-lo aqui: http://grebulon.com/software/stripem.php
fonte