如何阻止Gedit,Gvim,Vim,Nano添加End-of-File换行符?

有时我希望文本文件的最后一行是一个简单的文本字符串, 附加换行符 :…例如。 将另一个文件连接到它。

多个编辑器通过添加换行符自动修改我的文本,即使我没有按Enter键

Remains unmodified: Emacs,SciTE,凯特,蓝鱼,记事本(葡萄酒)

Newline is added: Gedit,Gvim,Vim,Nano

我想知道是否有某种方法可以调整Gedit,Gvim和Vim只保存我输入的内容….甚至Nano也可以派上用场

我目前使用Gedit,而且我正在使用Gvim / Vim ..所以知道如何“切换”这些开/关将会很有用…

PS 。 在Gedit,Gvim和Vim中重新打开相同的文件时,光标的文件结束位置位于文本的末尾,而它应该显示在下一个(空)行上。 这是误导性的(但这是因为我已经习惯了)。

我用一个hexeditor来检查上面的观察。

对于gEdit 安装gEdit 似乎没有办法禁止在最后插入换行符看到这个答案 。

对于Vim 安装vim (和gVim 安装vim 你可以 – 通过执行以下选项:set binary 。 设置为二进制文件将按原样保存文件,而不是在文档末尾插入换行符(除非已存在,否则将保留该文件)。 您可以随时使用:set nobinary恢复此选项:set nobinary

纳米 安装Nano 有点容易。 您可以使用-L标志启动nano(如果您更像是可视类型,则使用--nonewlines )。 这将禁止将换行符自动添加到文件末尾(只要实际没有输入)。 理想情况下,您可以在~/.bashrc设置此别名: alias nanon=nano -L ,它将启动Nano,其中包含no newlines标志。

由于我不确切知道你在做什么,我将指出你为什么文件以换行结束? 这可以解释为什么他们在那里。 简而言之,如果在EOF之前没有找到EOL某些应用程序将会失败

对于gEdit:

如果您使用的是Ubuntu 12.04或更高版本,则可以设置该行为。

通过图形用户界面:

  1. 运行dconf编辑器( dconf-editor
  2. 转到orggnomegeditpreferenceseditor
    (或只是搜索ensure-trailing-newline
  3. 如果您不想自动添加换行符,请取消选中ensure-trailing-newline

在命令行上:

  1. 打开终端( ctrl + alt + T
  2. 输入以下命令

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

    你已经完成了

参考| Launchpad错误

如果您只想写一个单行文件,那么echo可能是最简单的解决方案:

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