Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio code 我可以根据文件类型设置VS代码默认EOL吗?_Visual Studio Code - Fatal编程技术网

Visual studio code 我可以根据文件类型设置VS代码默认EOL吗?

Visual studio code 我可以根据文件类型设置VS代码默认EOL吗?,visual-studio-code,Visual Studio Code,如果Windows上的.sh文件具有CRLF的EOL,则在Linux Docker容器中运行这些文件时会出现问题。我是否可以使VS代码始终与LF一起用于特定的文件类型,例如.sh,同时仍对所有其他文件使用CRLF 我只在设置中找到“files.eol”:“\r\n”,但这是全局的 我知道您可以在底部工具栏中对每个文件进行更改,但我希望这是所有.sh文件的默认设置。您可以使用 安装,然后在项目根目录下添加一个.editorconfig文件: [*] end_of_line = crlf [*.{

如果Windows上的
.sh
文件具有CRLF的EOL,则在Linux Docker容器中运行这些文件时会出现问题。我是否可以使VS代码始终与LF一起用于特定的文件类型,例如.sh,同时仍对所有其他文件使用CRLF

我只在设置中找到
“files.eol”:“\r\n”
,但这是全局的

我知道您可以在底部工具栏中对每个文件进行更改,但我希望这是所有
.sh
文件的默认设置。

您可以使用

安装,然后在项目根目录下添加一个
.editorconfig
文件:

[*]
end_of_line = crlf

[*.{sh}]
end_of_line = lf

但正如@axiac所说,我建议您始终使用
lf

在设置窗口中,转到

设置>文本编辑器>文件>下线
选项。您可以使用以下可用选项

- \n
- \r\n
- auto (default)
此处
\n
表示LF,
\r\n
表示CRLF,
auto
使用操作系统特定的EL运算符

选择您的选项并保存

VS代码:版本1.13.3

编辑:我回答这个问题有点“过早”。但它现在从v1.40开始工作。看


您可以在vscode中执行此操作,而无需扩展名。您可以进行特定于语言的设置:

在命令选项板中,搜索“
Configure language specific
”,选择它并从语言选项中选择“
shellscript
”:

这将在您的设置中创建以下内容:

"[shellscript]": {

},
现在,添加您希望应用于shellscript文件的任何内容,如下所示(并非所有设置都适用,但大多数都适用):

非常非常重要

行尾序列用于新文件。对于现有文件, 始终保留现有的行尾序列。改变现状 行尾序列对于现有文件,请使用“更改行尾” 顺序命令


对于所有文件类型,最好使用
LF
。除了一些愚蠢的程序,如记事本,所有操作系统上的编程和纯文本编辑器都将其作为换行符处理。这给了我一个错误“未知标识符。使用语言标识符”,并且不起作用。你是对的,但是现在到了v1.40。我怎么知道的?LOL。这不符合“基于文件类型”的要求。(github(dot)com/Microsoft/vscode/issues/34876)
"[shellscript]": {
    "files.eol": "\n"
},