Jangan tambahkan baris baru di akhir file

11

Vim selalu menambahkan baris baru di akhir file saya saat menyimpan, dan itu menyebabkan kesalahan pada skrip PHP saya.

Bagaimana saya bisa membuat vim tidak menambahkan baris baru ini di save?

Dan
sumber
7
"itu menyebabkan kesalahan dalam skrip PHP saya" -> Ini aneh? PHP harus bekerja dengan baik dengan baris baru. Sebenarnya, ini cukup standar. Mungkin Anda memiliki baris kosong setelah ?>yang PHP output ke browser (menyebabkan "header sudah terkirim" -error)? Anda tidak perlu trailing ?>, dan biasanya disarankan untuk tidak melakukannya untuk mencegah masalah ini.
Martin Tournoij
Saya kira itu menyesatkan. Skrip kami menafsirkan output apa pun sebagai kesalahan.
Dan
1
Tidak. Vim tidak menambahkan baris baru.
romainl

Jawaban:

11

Ini bukan baris kosong penuh, hanya baris baru akhir di akhir baris terakhir. Alat Unix (seperti warisan Vim) bersikeras menambahkan itu, sedangkan sistem operasi Windows tidak begitu ketat. Anda dapat membaca lebih lanjut tentang itu di Mengapa file harus diakhiri dengan baris baru?

Sayangnya, ini cukup kompleks untuk mencegah Vim dari menulis baris terakhir. Plugin PreserveNoEOL saya dapat melakukan ini. Untuk diskusi tentang pendekatan, juga lihat VIM Nonaktifkan Otomatis Baris Baru Di Akhir File .

Ingo Karkat
sumber
Hanya mencatat bagi pembaca di masa depan bahwa sementara jawaban ini hebat pada saat itu, dalam versi Vim yang lebih baru ada solusi yang jauh lebih sederhana dalam jawaban yang diposting kemudian .
Kaya
11

Dalam versi baru Vim akhirnya ada opsi untuk ini

Vim 7.4.785 menambahkan opsi 'fixeol' yang dapat dinonaktifkan untuk secara otomatis menjaga setiap EOL yang hilang di akhir file.

(lihat halaman wiki: http://vim.wikia.com/wiki/Do_not_auto-add_a_newline_at_EOF )

Di ~/.vimrctambahkan baris ini Anda:

set nofixeol

Luncurkan ulang vim, sekarang seharusnya tidak menambahkan baris baru di akhir file.

(hanya berfungsi sejak vim versi 7.4.785)

DarthVanger
sumber
0

Sudahkah Anda mencoba membuka file dalam mode biner? Coba vim -b file_name. Seharusnya tidak menambahkan baris baru di akhir file.

Ali
sumber
Saya mencoba melakukan ini, dan kemudian menggunakan xxduntuk memverifikasi, tetapi masih menambahkan linefeed ( 0a) bahkan dalam mode biner.
James