179

这是我的Settings - User配置:

{
    "auto_indent": true,
    "color_scheme": "Packages/Color Scheme - Default/Twilight.tmTheme",
    "default_line_ending": "LF",
    "detect_indentation": true,
    "font_size": 10.0,
    "ignored_packages":
    [
        "Vintage"
    ],
    "indent_to_bracket": false,
    "smart_indent": true,
    "tab_size": 4,
    "translate_tabs_to_spaces": true,
    "trim_automatic_white_space": true,
    "use_tab_stops": true
}

default_line_ending选项的评论说: 注释 default_line_ending 选项

当我创建一个新文件时,我检查以此处结尾的行:

检查行尾

如您所见,它仍然是 Windows... 有什么想法吗?

4

4 回答 4

201

评论指出

// Determines what character(s) are used to terminate each line in new files.
// Valid values are 'system' (whatever the OS uses), 'windows' (CRLF) and
// 'unix' (LF only).

你正在设置

"default_line_ending": "LF",

你应该设置

"default_line_ending": "unix",

于 2012-08-10T10:59:55.310 回答
9

EditorConfig 项目Github 链接)是另一个非常可行的解决方案。类似于 sftp-config.json 和 .sublime-project/workspace 类文件,一旦在项目文件夹或父文件夹中设置了 .editorconfig 文件,每次在该目录结构中保存文件时,插件都会自动应用点文件中的设置并为您自动执行一些不同的操作。其中一些是保存 Unix 风格的换行符、添加文件结尾换行符、删除空格和调整缩进制表符/空格设置。


快速示例

使用 Package Control 在 Sublime 中安装 EditorConfig 插件;然后将一个名为的文件 .editorconfig放在父目录中(如果您愿意,甚至可以是您的主目录或根目录),其内容如下:

[*]
end_of_line = lf

就是这样。每当您在该目录结构中保存文件时,此设置将自动应用 Unix 样式的行尾。你可以做更多很酷的事情,例如。修剪不需要的尾随空格或在每个文件的末尾添加尾随换行符。更多详细信息,请参考https://github.com/sindresorhus/editorconfig-sublime的示例文件,即:

# editorconfig.org
root = true

[*]
indent_style = tab
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.md]
trim_trailing_whitespace = false

root = true行表示 EditorConfig 不会.editorconfig在目录结构的上层中查找其他文件。

于 2013-05-22T02:03:31.003 回答
1

将行尾从 LF 更改为 CRLF:

打开 Sublime 并按照以下步骤操作:-

1 按 Ctrl+shift+p 然后安装包名行统一结尾

然后再次按 Ctrl+shift+p

2 在空白输入框中输入“行统一结尾”

3 按两次回车

Sublime 有时可能会冻结,因此会将行尾从 LF 更改为 CRLF

于 2017-08-31T12:59:27.373 回答
1

一次(批量)修改项目的所有文件的最简单方法是通过Line Endings Unify包:

  1. Ctrl++类型instShift +选择Install PackageP
  2. 输入line end + 选择Line Endings Unify
  3. 安装后,Ctrl++ Shift+P输入end + 选择Line Endings Unify
  4. (而不是 3.)复制:

    {
     "keys": ["ctrl+alt+l"],
     "command": "line_endings_unify"
    },
    

    Preferences -> KeyBindings + press + +中的User数组(右窗格,在打开之后[)。CtrlAltL

正如另一个答案中提到的:

  • 回车 ( CR ) 字符 ( 0x0D, \r) [...] 早期的 Macintosh 操作系统(OS-9 和更早版本)。

  • 换行 ( LF ) 字符 ( 0x0A, \n) [...] 基于 UNIX 的系统 (Linux, Mac OSX)

  • 行尾 ( EOL ) 序列 ( 0x0D 0x0A, \r\n) [...](非 Unix:Windows、Symbian OS)。

如果您有node_modulesbuild或其他自动生成的文件夹,请在运行包之前将其删除。

运行包时:

  1. 底部会要求您通过逗号分隔的列表选择要搜索的文件扩展名(键入加快替换速度所需的唯一扩展名,例如js,jsx)。
  2. 然后询问您要使用哪个输入行结尾,例如,如果您需要LF 类型\n
  3. 按下ENTER并等待,直到您看到带有LineEndingsUnify Complete的警报窗口。
于 2019-03-28T11:09:59.553 回答