VS Code:文件末尾新行不持久

Posted

技术标签:

【中文标题】VS Code:文件末尾新行不持久【英文标题】:VS Code: End of file new line not persisting 【发布时间】:2018-10-14 05:37:43 【问题描述】:

我面临一个恼人的问题,即没有为 htmljavascript 保存新行,尽管明确设置它们应该完成。有人可以指导我做错了什么吗?

GitHub Project

Visual Studio Code 版本详情:

Version 1.23.0
Commit 7c7da59c2333a1306c41e6e7b68d7f0caa7b3d45
Date 2018-05-03T15:23:19.356Z
Shell 1.7.12
Renderer 58.0.3029.110
Node 7.9.0
Architecture x64

VS 代码设置:

【问题讨论】:

您已显示用户设置。我们可以假设您的工作区设置中没有任何内容或没有任何冲突吗?覆盖用户设置。 设置看起来正确。您可以尝试在没有扩展 code --disable-extensions 的情况下运行 VS Code,以确保这不是扩展之一的操作。您还可以在 VS Code Insiders (code.visualstudio.com/insiders) 中检查这些设置是否有效。 @Mark 是的,我的工作区设置完全为空 @VictorS。当我开始禁用扩展时,文件新行的末尾确实按预期工作。如何调试和识别导致它的确切扩展? @VictorS。 NVM,我实际上开始卸载未使用的扩展并删除特定的扩展,实际上通过卸载this plugin 解决了这个问题。再次感谢您。 【参考方案1】:

转到 vs code 中的扩展并删除名为 save on typing 的扩展并将其删除,一切都会好起来的

【讨论】:

正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。【参考方案2】:

这是因为?CODE中的默认设置

  // When enabled, insert a final new line at the end of the file when saving it.
  "files.insertFinalNewline": false,

将其设置为 true,您将能够坚持新行。我还建议您在最后打开多个新行的修剪器。

第 1 步:按 + ,(Windows/Linux 上为 CTRL)打开设置。

第 2 步:添加以下两个设置。

"files.insertFinalNewline": true, “files.trimFinalNewlines”:是的,

⚡这是一个 GIF 演示 - 保存文件以添加一行或修剪多余的行

【讨论】:

如果您通读问题中的 cmets 和接受的答案(我代表 VictorS 回答,他应该得到 IMO 的赏金,但我不能对评论给予奖励);我的设置是正确的,但是一个插件会导致它被覆盖(这可能是该插件本身的一个错误)。 很高兴你发现它很有用:) 如何禁用 vscode 自动为 js 文件添加换行符?我使用更漂亮的 eslint【参考方案3】:

问题不在于设置,而在于扩展。正如 VictorS. 在问题中的评论中指出的那样,在 code --disable-extensions 中运行编辑器我验证了没有扩展它确实有效。然后我开始卸载扩展,直到它正常工作,最后归零到this plugin,然后卸载它使事情按我的预期工作。

【讨论】:

【参考方案4】:

您已将 files.eol 设置为 \r\n。我不是专家,但由于您使用的是 Linux,您可能想尝试使用 Linux 特定的 EOL 标记 \n。 Source

【讨论】:

实际上,如果您注意到默认值是 LF,但由于这不起作用,我也尝试用 CRLF 覆盖它,但没有任何运气【参考方案5】:

这是错误的设置。

正确的设置是

"files.insertFinalNewline": false,

将此设置为true 将允许在保存文件时添加新行。 还有一个更明确的设置"html.format.endWithNewline": false,,但我从未使用过它,所以我不确定它是如何工作的。

【讨论】:

无法从应用程序内更新默认设置。当我试图覆盖它时,它会在用户空间(右侧)上设置新值 @imyousuf 这就是 VS Code 设置的工作方式。当您覆盖它时,它将位于用户设置中。您不能覆盖默认默认设置。

以上是关于VS Code:文件末尾新行不持久的主要内容,如果未能解决你的问题,请参考以下文章

Vim 为啥要在文件末尾添加新行?

vs code settings.json

反正有没有让 VS Code 在 C# 的新行上自动格式化大括号?

使用 sed 删除文本文件最后一行中的新行

如何使 bash 提示在 vs 代码的新行开始?

Bash Heredoc 格式在 ) 末尾添加新行;