如何阻止Gedit,Gvim,Vim,Nano添加文件结束换行符char?


42

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

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

Remains unmodified: Emacs,SciTE,Kate,Bluefish,记事本(酒)

Newline is added: Gedit,Gvim,Vim,Nano

我想知道是否可以通过某种方式来调整Gedit,Gvim和Vim,以仅保存我输入的内容。...甚至Nano都可以派上用场

我目前正在使用Gedit,并且正在Gvim / Vim中涉猎。因此了解如何“切换”这些开/关将非常有用。

PS。在Gedit,Gvim和Vim中重新打开同一文件后,光标的文件结尾位置在文本的末尾,而它实际上应该显示在下一行(空)。这是令人误解的(但这是因为我习惯了)。

我用六角仪检查了上述观察结果。

Answers:


49

对于gEdit ,似乎没有办法禁止在末尾插入换行符,请参见此答案安装gEdit

对于Vim 安装vim(和gVim 安装vim),您可以-通过执行以下选项::set binary。设置为二进制将按原样保存文件,并且不会在文档末尾插入换行符(除非已经有一个换行符,它将被保留在其中)。您随时可以使用还原此选项:set nobinary

纳米 安装Nano有点容易。您可以使用-L标志启动nano (或者--nonewlines如果您更喜欢视觉类型)。这将禁止在文件末尾自动添加换行符(只要未实际输入换行符)。理想情况下,您可以在~/.bashrc:中设置此别名alias nano="nano -L",这将在不包含换行符的情况下启动Nano!

由于我不知道您在做什么,因此我将向您指出为什么文件应该以换行符结尾?这可以解释为什么他们在那里。简而言之,如果某些应用程序没有在应用程序EOL之前直接找到它们,则会失败。EOF


1
感谢Marco,一个很好的答案...“为什么应该...”是一个有趣的“为什么”集合...我个人非常了解“换行符”(这就是为什么我注意到了这一点:),但是它肯定是每个人的好参考(包括我自己)...但是我确实想知道我添加了或没有添加 ...也许
Gedit

3
看来,对于Gvim / Vim,需要设置两个选项...按照: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 2010年

1
Gedit(Launchpad)意识到了这个问题,并将其显示在“愿望清单”上。...(我希望,但是我不会屏住呼吸!如果此摘录表示任何含义:“ ...( )会使用户
感到

2
对于nano,默认情况下可以放入set nonewlines〜/ .nanorc(或/ etc / nanorc)以使用-Lmode。
mwfearnley

使用editorconfig(editorconfig,org)-适用于vim和gedit的插件。在.editorconfig文件中指定所需的选项。
ddbug '18

16

对于gEdit:

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

通过图形用户界面:

  1. 运行dconf编辑器(dconf-editor
  2. 进入org→交通gnome→交通gedit→交通preferences→交通editor
    (或只是搜索ensure-trailing-newline
  3. 取消选中ensure-trailing-newline是否不想自动添加换行符。

在命令行上:

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

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

    到此为止。

参考| 启动板错误


1
谢谢。很高兴知道。我已经尝试过了,而且效果很好...(+1)
Peter.O,2013年

那羽编辑器呢?(没有看到“ ensure-trailing-newline”用于
羽化

0

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

echo -n "the contents of my file" > myfile
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.