How to stop Gedit, Gvim, Vim, Nano from adding End-of-File newline char?

Sometimes I want the last line of a text file to be a simple string of text with no newline character appended: …eg. to concatenate another file to it.

Several editors automatically modify my text by adding a newline character, even though I have not pressed Enter.

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

Newline is added: Gedit, Gvim, Vim, Nano

I would like to know if there is some way to tweak Gedit, Gvim, and Vim to only save what I have typed…. and even Nano might come in handy

I currently use Gedit, and I’m dabbling in Gvim/Vim.. so it would be useful to know how to “toggle” these on/off…

PS. Upon re-opening the same file in Gedit, Gvim, and Vim, the cursor’s end-of-file placement is at the end of the text, whereas it should really show up on the next (empty) line. This is misleading (but that’s because of what I’m used to).

I used a hexeditor to check the above observatons.

Asked By: Peter.O


For gEdit there does not seem to be a way to disable having a newline inserted at the end see this answer.

For Vim (and gVim) you can – by executing the following option: :set binary. Setting to binary will save the file as is and not insert a newline at the end of the document (Unless there already is one, in which it will be retained). At anytime you can revert this option with :set nobinary.

Nano is a little easier. You can launch nano with the -L flag (or --nonewlines if you’re more the visual type). This will disable the automatic addition of the newline to the end of the file (so long as one was not actually entered). Ideally you could setup this alias in your ~/.bashrc: alias nano="nano -L", which would launch Nano with the no newlines flag included in it!

Since I don’t know exactly what you’re doing I’m going to point you to Why should files end with a newline? which may explain why they’re there. In short, some applications will fail if they don’t find an EOL directly before the EOF.

Answered By: Marco Ceppi

For gEdit:

If you are using Ubuntu 12.04 or above, you can set the behavior already.

Through a graphical user interface:

  1. Run dconf Editor (dconf-editor)
  2. Go to orggnomegeditpreferenceseditor
    (or just search for ensure-trailing-newline)
  3. Uncheck ensure-trailing-newline if you don’t want automatically added newlines.

On the command line:

  1. Open a terminal (ctrl+alt+T)
  2. enter the following command

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

    and you’re done.

Reference | Launchpad bug

Answered By: Ravi Gadhia

If you just want to write a single line file, then echo is probably the easiest solution:

echo -n "the contents of my file" > myfile
Answered By: jpillora
Categories: Answers Tags: , , , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.