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?


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 .


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)


0

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


Saya mencoba melakukan ini, dan kemudian menggunakan xxduntuk memverifikasi, tetapi masih menambahkan linefeed ( 0a) bahkan dalam mode biner.
James
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.