Visual Studio, tutarsız satır sonlarını normalleştirerek ne anlama geliyor?


238

Visual Studio ara sıra bana şunu söyler:

Aşağıdaki dosyalardaki satır sonları tutarlı değil. Satır sonlarını normalleştirmek istiyor musunuz?

Daha sonra Windows, Mac, Unix ve birkaç Unicode gibi farklı standartlara veya bir şeye sahip olmama izin verir.

Bu ne anlama geliyor ve tıklarsam ne olacak Yes?


Visual Studio bana aynı iletiyi gösterir, ancak başvurduğu "dosya" aslında bir klasördür! Bu ne anlama geliyor?!
Albay Panik

Tüm bir dizine veya yinelemeli olarak belirli bir uzantıdaki (* .c veya * .h gibi) tüm dosyalar için dizinler dizini üzerinden yapmak için küçük bir yardımcı program yaptım, ancak Delphi kullanmamıza rağmen, yardımcı program herhangi bir Windows kaynak kodu için çalışıyor Dosyalar. Kaynak kodu dahil artı ikili (exe). Hangi satırların fazladan satır besleme (yani eksik satır başı) veya fazla satır başı (yani eksik satır aralığı) olduğunu rapor eder. docs.google.com/file/d/0B07SrKpE8ErmbHZ1SWkxT3RLczA/…
Warren P

1
Neden olabilir git. Ayrıca bakınız: stackoverflow.com/questions/170961/…
Jess

2
Açılır menüde 'dosyanın / projenin geri kalanından en yaygın satır sonu türünü tercih et' yazan bir seçenek olmalıdır.
MetaGuru

Yanıtlar:


213

Genellikle bu, satır başı / satır besleme çiftinden başka bir şeyle biten satırlarınız olduğu anlamına gelir. Genellikle bir web sayfasından kod düzenleyicisine kopyalayıp yapıştırdığınızda olur.

Satır sonlarını normalleştirmek, tüm satır sonlandırma karakterlerinin tutarlı olmasını sağlamaktır. Bu biten bir ila satır engeller \r\nve bir ile biten \rveya \n; birincisi Windows satır sonu çifti, diğerleri ise genellikle Mac veya Linux dosyaları için kullanılır.

Visual Studio'da geliştirdiğiniz için, açılır menüden "Windows" u seçmek isteyeceksiniz. :-)


1
Satır bir taşıyıcı olmadan nasıl biter ...?
MetaGuru

23
Öyleyse kapak neden visual studio çizgilerin nasıl bittiğini önemsiyor, görünüşe göre tüm farklı türleri tanıyor, sadece mutlu olmalı ve kapanmalı.
MetaGuru

53
Ah, ya Windows için olmayan bir şeyi düzeltmek için sadece VS kullanıyorsanız? Bir Linux yardımcı programında veya düz C / C ++ 'da hızlı düzeltme ve CRLF'lerin eklenmesini istemiyor musunuz? Bekle-şimdi MS'nin zihninizi okumasını ve hangisini kullanacağını bilmesini istiyorsunuz? <g> VS takımı her iki durumda da yanlış, değil mi? Sheesh!
Ken White

6
Oh snap Ken, haklısın, eğer Linux'ta derlemeyi planladığım bazı dosyaları düzenlersem ve derleyici ihtiyaç duyduğu çizgi sonlarına sahip değilse boğulur ve ölür biliyorum VS seçmeme izin verdim ... TEŞEKKÜR EDERİZ!
MetaGuru

19
Sorun, VS'nin Unix satır sonlarıyla baş edememesi değil - yapabilir. Uyarı, satır sonlarının tutarsız olduğunu gösterir - örn. Dosyadaki bazı satırlar CRLF ve bazıları LF'dir. VS bununla başa çıkacak, ancak takım zincirinizdeki diğer uygulamalar olmayabilir, bu nedenle sizi uyarır. Bunu önemsemiyorsanız uyarıyı kapatın: Seçenekler -> Çevre -> Belgeler -> 'Yükte tutarlı satır sonları olup olmadığını kontrol edin'. Bu uyarı, birden fazla platformda ürünler üzerinde çalışıyorsanız çok yararlı olabilir.
the_mandrill

75

Bazı satırlarla biter \n.

Bazı diğer satırlarla biter \r\n.

Visual Studio, tüm satırları aynı şekilde bitirmenizi önerir.


40

Visual Studio 2012 kullanıyorsanız:

DosyaGelişmiş Kaydetme Seçenekleri menüsüne gidin → Windows olarak satır sonları türünü seçin (CR LF) .


1
Bu seçenek, Visual Studio 2010 Ultimate Sürüm 10.0.40219.1 SP1Rel dosyamın Dosya menüsünde görünmüyor.
DOK

1
@DOK, Visual Studio 2010 Premium sürümünde Dosya menüsünde öyle!
Peter

4
Seçeneği göremiyorsanız, Araçlar-> Özelleştir, komutlar sekmesine gidip bir komut ekleyerek dosya menünüzü özelleştirebilirsiniz.
Rob

Tüm dosyaları birlikte etkileyen genel bir ayar var mı? Bir çözüm altındaki tüm kaynaklar için bunu yapmak bir acıdır.
Klaus

12

Seçeneği AÇMAK / KAPATMAK için menü çubuğundan aşağıdaki adımları izleyin :

AraçlarSeçeneklerÇevreBelgelerYükte tutarlı satır sonları olup olmadığını kontrol et


7

Düzenlemekte olduğunuz dosya, aynı satır sonlarını kullanmayan ve karışık satır sonlarına sahip bir dosyayla sonuçlanan başka bir düzenleyici ile düzenlenmiştir.

Satır sonları için kullanılan ASCII karakterleri:

CR, Satır Başı
LF, Satır Besleme

Windows = CRLF
Mac OS 9 veya öncesi = CR
Unix = LF


6

Wikipedia satırsonu makalesi size yardımcı olabilir. İşte bir alıntı:

Farklı yeni satır kuralları genellikle farklı türdeki sistemler arasında aktarılan metin dosyalarının yanlış görüntülenmesine neden olur. Örneğin, Unix veya Apple Macintosh sistemlerinden kaynaklanan dosyalar, Microsoft Windows üzerinde çalışan bazı programlarda tek bir uzun satır olarak görünebilir. Bunun tersine, bir Unix sistemindeki bir Windows bilgisayarından kaynaklanan bir dosyayı görüntülerken, ekstra CR ^ M olarak veya her satırın sonunda veya ikinci satır sonu olarak görüntülenebilir.


5

Bu, örneğin, bazı metin satırlarınızın <Carriage Return><Linefeed>(Windows standardı), bazılarının ise yalnızca <Linefeed>(Unix standardı) ile bittiği anlamına gelir .

'Evet'i tıklatırsanız, bunlar kaynak dosyanızdaki satır sonu aynı biçime dönüştürülür.

Bu, derleyicide herhangi bir fark yaratmaz (çünkü satır sonu yalnızca boşluk olarak sayılır), ancak diğer araçlarda (örneğin sürüm kontrol sisteminizdeki 'fark') bazı farklar yaratabilir.


4

Bu sadece Visual Studio değil ... Dosyaları, derleyicileri, bağlayıcıları, vb. Okuyabilmesi gereken herhangi bir araç olurdu.

Genel olarak (yazılım geliştirme için) çoklu platform satır sonu sorununu kabul ediyoruz, ancak sürüm kontrol yazılımının bununla ilgilenmesine izin veriyoruz.


1
Katılıyorum. SCM sisteminizin bunu yapmasına izin vermek en iyisidir. Svn kullanıyorsanız, ayrıca bkz. Stackoverflow.com/questions/15687/…
kgriffs

Tamamen katılıyorum. Bir proje üzerinde çalışıyorum ve Windows'tayım ve takım arkadaşım Mac kullanıyorsa ne olur? Sürekli olarak CR'yi CRLF'ye değiştireceğiz ve tekrar geri döneceğiz. SCM'nin bunu soyutlamasına izin vermek en iyisidir. Yanıtların çoğu, insanların kendi başlarına çalıştığını veya kod üzerinde çalışan herkesin Windows kullandığını varsayar.
bytedev

3

Web'den bir şey yapıştırdığınızda, tutarsız satır sonlarını alabilirsiniz.
Bunu düzeltmek için, dosya kaydederken satır sonunu otomatik olarak tutarlı hale getirebilen Visual Studio uzantısını "Line Endings Unifier" kullanabilirsiniz.

resim açıklamasını buraya girin


2

Visual Studio 2008 için bir dosya kaydedildiğinde satır sonu biçimini dönüştüren bir eklenti vardır. Buradan indirebilirsiniz: http://grebulon.com/software/stripem.php


Bu svn "tutarsız satır sonları" hatası aldığınızda yardımcı olabilir.
kgriffs
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.