Dosyanın sonuna yeni satır ekleme


11

Vim, kaydederken dosyalarımın sonuna her zaman yeni bir satır ekliyor ve PHP komut dosyalarında hatalara neden oluyor.

Vim'in bu yeni satırı kaydetmeye eklememesini nasıl sağlayabilirim?


7
"benim PHP komut dosyalarında hatalara neden oluyor" -> Bu garip mi? PHP, sondaki bir yeni satır ile iyi çalışmalıdır. Aslında, bu hemen hemen standart. Belki de ?>PHP'nin tarayıcıya çıkışından sonra boş bir satırınız var ("başlıklar zaten gönderildi" hatasına neden oluyor)? Bir izlemeye ihtiyacınız yoktur ?>ve genellikle tam olarak bu sorunu önlemek için dışarıda bırakmanız önerilir.
Martin Tournoij

Sanırım bu yanıltıcı. Komut dosyalarımız herhangi bir çıktıyı hata olarak yorumlar.
Dan


1
Hayır. Vim yeni bir satır eklemiyor.
romainl

Yanıtlar:


11

Bu tam boş bir satır değil, sadece son satırın sonundaki son satır. Unix araçları (Vim'in mirası gibi) bunu eklemede ısrar ederken, Windows işletim sistemi çok katı değildir. Bununla ilgili daha fazla bilgiyi Neden dosyalar bir satırsonu ile bitmeli?

Ne yazık ki, Vim'in son satırsonu yazmasını önlemek oldukça karmaşık. Benim PreserveNoEOL eklentisi yapabilirsiniz. Yaklaşımlar hakkında daha fazla bilgi için bkz . Dosya Sonundaki VIM'yi Otomatik Yeni Satırı Devre Dışı Bırak .


Gelecekteki okuyucular için, bu cevap o zamanlar müthiş olsa da, Vim'in daha yeni sürümlerinde, daha sonra yayınlanan bir cevapta çok daha basit bir çözüm olduğunu not edin .
Zengin

11

Vim'in yeni sürümlerinde nihayet bunun için bir seçenek var

Vim 7.4.785, dosyanın sonundaki eksik EOL'leri otomatik olarak korumak için devre dışı bırakılabilen 'fixeol' seçeneğini ekler.

(wiki sayfasına bakın: http://vim.wikia.com/wiki/Do_not_auto-add_a_newline_at_EOF )

Gözlerinde farklı ~/.vimrcbu satırı ekleyin:

set nofixeol

Yeniden başlat vim, şimdi dosyanın sonuna satırsonu eklememelidir.

(yalnızca vim 7.4.785 sürümünden beri çalışır)


0

Dosyayı ikili modda açmayı denediniz mi? Deneyin vim -b file_name. Dosya sonuna yeni satır eklememelidir.


Bunu yapmayı ve sonra xxddoğrulamak için kullanarak denedim , ama yine 0ade ikili modda bir satır besleme ( ) ekler .
James
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.