Bagaimana cara menghentikan Gedit, Gvim, Vim, Nano dari menambahkan char baris baru File Akhir?

42

Kadang-kadang saya ingin baris terakhir dari file teks menjadi string teks sederhana tanpa menambahkan karakter baris baru : ... misalnya. untuk menyatukan file lain untuk itu.

Beberapa editor secara otomatis mengubah teks saya dengan menambahkan karakter baris baru, meskipun saya belum menekan Enter .

Remains unmodified: Emacs, SciTE, Kate, Bluefish, Notepad (anggur)

Newline is added: Gedit, Gvim, Vim, Nano

Saya ingin tahu apakah ada beberapa cara untuk mengubah Gedit, Gvim, dan Vim untuk hanya menyimpan apa yang telah saya ketikkan .... dan bahkan Nano mungkin berguna

Saat ini saya menggunakan Gedit, dan saya mencoba-coba di Gvim / Vim .. jadi akan berguna untuk mengetahui cara "beralih" on / off ini ...

PS . Setelah membuka kembali file yang sama di Gedit, Gvim, dan Vim, penempatan file di akhir kursor berada di akhir teks, sedangkan itu harus benar-benar muncul pada baris berikutnya (kosong). Ini menyesatkan (tapi itu karena apa yang saya terbiasa).

Saya menggunakan hexeditor untuk memeriksa observasi di atas.

Peter.O
sumber

Jawaban:

49

Untuk gEdit sepertinya tidak ada cara untuk menonaktifkan memiliki baris baru yang dimasukkan di akhir lihat jawaban ini .Instal gEdit

Untuk Vim Pasang vim (dan gvim Pasang vim ) Anda bisa - dengan mengeksekusi opsi berikut: :set binary. Pengaturan ke biner akan menyimpan file apa adanya dan tidak menyisipkan baris baru di akhir dokumen (Kecuali jika sudah ada, di mana itu akan dipertahankan). Kapan saja Anda dapat mengembalikan opsi ini dengan :set nobinary.

Nano Instal Nano sedikit lebih mudah. Anda dapat meluncurkan nano dengan -Lbendera (atau --nonewlinesjika Anda lebih menyukai jenis visual). Ini akan menonaktifkan penambahan otomatis baris baru ke akhir file (asalkan tidak benar-benar dimasukkan). Idealnya Anda dapat mengatur alias ini di ~/.bashrc: Anda alias nano="nano -L", yang akan meluncurkan Nano tanpa flag baris baru yang termasuk di dalamnya!

Karena saya tidak tahu persis apa yang Anda lakukan, saya akan mengarahkan Anda ke. Mengapa file harus diakhiri dengan baris baru? yang mungkin menjelaskan mengapa mereka ada di sana. Singkatnya beberapa aplikasi akan gagal jika mereka tidak menemukan secara EOLlangsung sebelumEOF

Marco Ceppi
sumber
1
Terima kasih Marco, jawaban yang bagus ... "Kenapa harus ..." adalah koleksi menarik dari "mengapa" ... Saya pribadi sangat "baru sadar" (itu sebabnya saya perhatikan :) tapi itu tentu saja merupakan referensi yang bagus untuk semua orang (termasuk saya sendiri) ... tapi saya lebih suka tahu bahwa saya menambahkan, atau tidak menambahkannya ... Mungkin ada plugin yang tidak jelas untuk Gedit ...
Peter.O
3
Tampaknya untuk Gvim / Vim diperlukan dua opsi yang harus ditetapkan ... sesuai : help eol ...When writing a file and this option ('eol') is off and the 'binary' option is on, no EOL will be written for the last line in the file.
Peter.O
1
Gedit (Launchpad) mengetahui masalah ini, dan memilikinya di "wishlist" .... (saya berharap, tapi saya tidak akan menahan nafas untuk yang satu ini! Jika ekstrak ini memiliki arti: "... (itu ) lebih suka membingungkan pengguna "
Peter.O
2
Untuk nano, Anda dapat menggunakan set nonewlines~ / .nanorc (atau / etc / nanorc) untuk menggunakan -Lmode secara default.
mwfearnley
Gunakan editorconfig (editorconfig, org) - plugin tersedia untuk vim dan gedit. Tentukan opsi yang diinginkan dalam file .editorconfig Anda.
ddbug
16

Untuk gEdit:

Jika Anda menggunakan Ubuntu 12.04 atau lebih tinggi, Anda sudah dapat mengatur perilaku tersebut.

Melalui antarmuka pengguna grafis:

  1. Jalankan dconf Editor ( dconf-editor)
  2. Pergi ke orggnomegeditpreferenceseditor
    (atau hanya mencari ensure-trailing-newline)
  3. Hapus centang ensure-trailing-newlinejika Anda tidak ingin secara otomatis menambahkan baris baru.

Di baris perintah:

  1. Buka terminal ( ctrl+ alt+ T)
  2. masukkan perintah berikut

    gsettings set org.gnome.gedit.preferences.editor ensure-trailing-newline false
    

    dan kamu sudah selesai.

Referensi | Bug launchpad

Ravi Gadhia
sumber
1
Terima kasih. Senang mendengarnya. Saya sudah mencobanya dan berhasil ... (+1)
Peter.O
bagaimana dengan editor pluma? (tidak melihat "garis-pastikan-mengikuti" untuk pluma)
ajcg
0

Jika Anda hanya ingin menulis file baris tunggal, maka gema mungkin solusi termudah:

echo -n "the contents of my file" > myfile
jpillora
sumber