我的emacs会删除行末空格,我该如何取消这个功能?

13

在保存时(我想),我的emacs会删除尾随的空格。我不想提交这些更改,只想提交我手动修改的部分。有没有一种方法可以禁用这种行为?

在保存时,我的emacs似乎会删除结尾处的空格。我不希望提交这些更改,只想提交我手动修改的部分。是否有方法可以禁用此行为?

1
为了将来的参考,请注意,此问题仅涉及文件中修改部分的空格管理。 - François Févotte
你得到答案了吗?我看到你既没有接受也没有评论回复 - 你需要更多的帮助吗? - Hi-Angel
3个回答

15

这种行为并不是标准的。然而,这是一种非常常见的自定义方法,你可能从别处借鉴了它。在你的初始化文件中查找类似下面的内容,并将这些行注释掉,就可以摆脱这种行为(让Emacs按原样保存文件,而不是完全删除空格):

(add-to-list 'write-file-functions 'delete-trailing-whitespace)
或者
(add-hook 'before-save-hook 'delete-trailing-whitespace)

这个EmacsWiki页面提供了大量处理尾随空格的建议。

如果你只想删除修改过的行末空格,你可以尝试使用ws-trim软件包。


1
Tempus:是的,摆脱你现有的自定义设置,使用 ws-trim -- 当在版本控制下工作时,它会完全满足你的需求(如果你遇到需要这样做的原因,你可以轻松地切换模式)。 - phils
2
不确定这是否有助于任何人,但 ws-trim 对我来说效果不太好,所以我做了这个:https://github.com/lewang/ws-butler... 它更不显眼。 - event_jr

5

此回答所建议的那样,可能已将deleting-trailing-whitespace钩子添加到before-save-hook钩子中。

要禁用此评估,请键入M-:(remove-hook 'before-save-hook 'delete-trailing-whitespace)


2

看看 ethan-wspace 吧。它可以清理你自己制造的任何空格混乱。但是,当你打开文件时存在的任何不正确的空格都将保留原样。这样,你就可以避免那些充满空格更改的混乱差异。


从描述来看,它似乎只有在整个文件一开始就是干净的状态下才能清除任何空格?这并不像 ws-trim 和 ws-butler 采取的方法那样有用。 - phils

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接