【问题标题】:Visual Studio Code: How to show line endingsVisual Studio Code:如何显示行尾
【发布时间】:2017-01-24 07:47:15
【问题描述】:

如何在 Visual Studio Code 中(不在 Visual Studio 中)显示换行符(CR、LF)?

目前只有小状态栏菜单显示/更改实际文件的行尾。但有时在每一行中直接看到行尾会很棒,尤其是当有混合行尾时(不好,但这种情况时有发生)。

我使用以下设置,但没有一个显示行尾。

"editor.renderWhitespace": true,
"editor.renderControlCharacters": true,
"editor.renderIndentGuides": true

是否有行尾设置?


我在 GitHub 上打开了一个问题:Possibility to display line endings in text area #12223

Soham Kamani 对此进行了扩展:code-eol

【问题讨论】:

  • 我已经为此做了一个扩展,以防你仍然需要它:marketplace.visualstudio.com/…
  • @SohamKamani 您的评论应该是问题的公认答案。
  • 那个扩展是没用的:它实际上并不显示字符是回车符还是换行符,它只是在与 vscode 所说的文件相匹配的行末尾生成字形。它无助于查明具有混合行尾样式的文件。 (或者 vscode 会自动对文件的 EOL 进行规范化,因此对此效果的任何扩展都是无用的。)
  • 这已经改变了:“editor.renderWhitespace”: true, true 不再被接受。
  • 对于“editor.renderWhitespace”的有效值:“none”、“boundary”、“selection”、“trailing”、“all”作为字符串。

标签: visual-studio-code


【解决方案1】:

AFAIK 无法在编辑器空间中直观地查看行尾,但在窗口的右下角有一个指示符,显示“CLRF”或“LF”,可让您设置行尾一个特定的文件。单击文本也可以更改行尾。

【讨论】:

  • 你能改变这个的默认值吗?现在每次打开文件时,我都必须手动单击它。
  • @DavidMartinez 是的。在用户或工作区设置中://默认的行尾字符。 "files.eol": "\r\n",
  • @Llewey 但这是一个全球性的变化,对吧?我可以以某种方式只为.sh 文件设置它吗?
  • @KostasDemiris 我还没有测试过这个,但你可以试试"[sh]": { "files.eol": "\n" }。并非所有设置都可以针对特定语言进行设置,我不确定这是否可以,但值得一试。
  • 不回答关于显示行尾的问题
【解决方案2】:

如果您想将其设置为默认值,您可以将此行粘贴到您的编辑器设置中(F1 菜单;> Preferences: Open Settings (JSON)

"files.eol": "\n"

例子:

{
    "git.confirmSync": false,
    "window.zoomLevel": -1,
    "workbench.activityBar.visible": true,
    "editor.wordWrap": true,
    "workbench.iconTheme": "vscode-icons",
    "window.menuBarVisibility": "default",
    "vsicons.projectDetection.autoReload": true,
    "files.eol": "\n"
}

请注意,这只会更改新文件的默认行结尾。这不会编辑您的文件。

【讨论】:

  • 我已经这样做了,但是每次我打开一个文件时,它仍然以 CRLF 打开,我必须手动更改它。
  • @pixelwiz 如果您保存文件,它会更改为 LF 吗? github.com/Microsoft/vscode/issues/26626github.com/Microsoft/vscode/issues/2957我换成mac了,所以在我自己的项目上开发就没有这个问题了。所以我无法验证,抱歉。
  • 在 Windows 上对我来说也是如此 - 将 files.eol 用户设置设置为“\n”,但文件仍报告为 CLRF
  • 我刚刚用 Win 10 和 VS Code 1.20.1 成功测试了这个。使用 LF 换行符创建了新文件!
  • 在创建新文件时,它们会以 LF 设置打开 VSCode。但与@pixelwiz 以及当我从项目中打开现有文件时相同。想法如何用 LF 打开现有文件?
【解决方案3】:

您可以安装扩展程序来显示行尾。

VS Marketplace 有几个可用的。

或者如果他们的搜索移动了,试试这个relevant Google search


在最初的答案中,我提供了一个指向 a specific extension by Johnny Härtell 的链接,两年后,这个扩展和作者在 VS 市场上神秘失踪了。

为了提供更好的体验并希望将来能证明这个答案,我已经用搜索结果更新了它,这应该让我们非常接近相关的扩展。

【讨论】:

  • 目前,这个扩展并没有做它声称的事情。在混合行结尾的文件中,根据 VS Code 声称文件遵循的内容,它显示行结尾好像它们都是一致的。
  • @AndrewArnott 感谢您的更新,我们将不得不关注您提交的问题...github.com/jhartell/vscode-line-endings/issues/1
  • @AndrewArnott 你能告诉我为什么它不适合你吗?对我来说它很完美,只是图标很小
  • @JohnBalvinArias 我提交的 Shanimal 链接到的问题描述了这个问题:它实际上并没有显示混合行结尾。它总是将它们显示为始终如一地显示 VS Code 的偏好设置。
  • @AndrewArnott 这是因为 VSCode 本身不支持混合行尾。 github.com/Microsoft/vscode/issues/127
【解决方案4】:

Render Line Endings 是一个仍在积极维护的 Visual Studio Code 扩展(截至 2021 年 9 月):

https://marketplace.visualstudio.com/items?itemName=medo64.render-crlf

https://github.com/medo64/render-crlf/

可以这样配置:

{
    "editor.renderWhitespace": "all",
    "code-eol.newlineCharacter": "¬",
    "code-eol.returnCharacter" : "¤",
    "code-eol.crlfCharacter"   : "¤¬",
}

看起来像这样:

【讨论】:

  • 它应该做什么?您能否将其添加到您的答案中(但没有“编辑:”、“更新:”或类似的 - 答案应该看起来好像是今天写的)。 )? “渲染”的是什么?
【解决方案5】:

在 Visual Studio Code 中设置默认 end of line 值的另一种方法:

  1. 导航到 Visual Studio Code 设置选项卡(例如,通过 Ctrl + ,(逗号))
  2. 在搜索栏中搜索end of line
  3. Files: Eol 下拉菜单中设置所需的值

截图:

【讨论】:

  • 问题是如何显示当前行结尾,而不是如何改变它。
【解决方案6】:

遇到相反的问题?如何隐藏行尾:

奇怪的是我有相反的问题!我刚刚结束了每个换行符的以下突出显示 - 这是我以前从未见过的。在所有打开的文件中并且没有选择。假设我错误地走捷径,这就是我最终解决这个问题的方式。鉴于该功能似乎实际上并不存在,我采取了关闭和重新打开的方式,但它们消失了!

【讨论】:

    猜你喜欢
    • 2022-10-07
    • 1970-01-01
    • 2021-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-28
    • 2016-06-16
    • 2017-11-26
    相关资源
    最近更新 更多