vscode EOL表示其他地方已修改,但从未进行过修改,

6pp0gazn  于 5个月前  发布在  Vscode
关注(0)|答案(7)|浏览(68)

当所有扩展都被禁用时,是否会出现这个问题?:是

  • 版本:1.73.1(系统设置)
  • 提交:6261075
  • 日期:2022-11-09T04:27:29.066Z
  • Electron:19.0.17
  • Chromium:102.0.5005.167
  • Node.js:16.14.2
  • V8:10.2.154.15-electron.0
  • OS:Windows_NT x64 10.0.22621
  • 沙箱:否

重现步骤:
请注意,我试图将每个EOL设置恢复到默认状态。
1.打开设置。
1.检查“files.eol”设置,它表示在其他地方被修改过。

tjrkku2a

tjrkku2a1#

当你将鼠标悬停在消息上时,你会得到类似这样的东西吗?

$x_{1}^{c_{0}d_{1}}x$

5ssjco0h

5ssjco0h2#

主要设置:

我不需要悬停。我得到了Shell Script的设置。

Shell Script设置:

点击它显示Shell Script的默认设置为LF。

我从未触碰过这个。我可以推断出,在一个未修改过的系统上:

  • 默认行尾符是自动的
  • Shell Script的默认行尾符是LF

我没有修改过任何一个,所以VSCode为什么说EOL设置被修改了?

osh3o9ms

osh3o9ms3#

另外,将Shell脚本的默认行尾(EOL)更改为自动,以便两者匹配会带来更多的困惑:

2ekbmq32

2ekbmq324#

"我没有修改任何内容,那么VSCode为什么说EOL设置被修改了呢?"
我能理解这种措辞为什么会让人感到困惑。在这种情况下,Modified elsewhere指示器悬停提到的是Shell Script的默认值被更改了,而这个默认值是在User范围之外的其他地方。Modified elsewhere指示器并不意味着你一定在其他地方修改了设置,因为扩展也可以覆盖特定语言的默认设置值,这也正是在这里发生的事情。
"此外,将Shell Script的Default EOL更改为自动"
在这种情况下,你更改了Shell Script语言范围内的用户设置值,所以当你切换回来时,会出现一个新的条目。在Shell Script语言范围内重置此设置将有助于使所有内容恢复到默认状态。

r9f1avp5

r9f1avp55#

修改后的elsewhere指示器并不意味着您一定在其他地方修改了设置,因为扩展也可以覆盖特定语言的默认设置值,这就是在这里发生的情况。
这里发生的是哪个扩展?一些内置的扩展吗?因为这是一个全新的干净的VSCode安装,默认情况下没有用户安装的扩展。您是指语言范围吗?
同时,我发现了另一个相关问题:
在Shell Script语言范围内重置此设置将有助于将所有内容恢复为默认值。
这是预期的行为,但它并没有。请参阅下面的图片。
要重现第二个问题,在一个全新的设置中:

  1. 转到Shell Script语言范围。在那里看到原始值为\n
  2. 将其更改为auto或/r/n
  3. 将其更改回\n
  4. 转到正常的全局范围。

这是我在Shell Script语言范围内将其更改回原始值后的情况。
但是settings.json文件中有:

"[shellscript]": {
        "files.eol": "\n"
    }

唯一解决方法是手动删除settings.json中的那些行。

x9ybnkn6

x9ybnkn66#

我明白了发生了什么。对于除了默认(非语言特定)用户范围之外的其他范围,我相信我已经让它在重置值时保持在文件中。这种行为是为了防止Workspace-scope设置仅仅因为用户选择的值与默认设置值相同而被重置的情况。
在UI中重置设置的一种方法仍然是在shellscript语言范围内点击齿轮图标并按下“重置设置”选项。

slwdgvem

slwdgvem7#

收集有关Shell脚本自动缩进的兴趣: #199003

相关问题