修复Sublime Text 2行结尾?

时间:2012-08-10 10:31:23

标签: sublimetext2 line-endings

这是我的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选项的评论说: Comment to default_line_ending option

当我创建一个新文件时,我检查这里的行结束:

Check line ending

你可以看到它仍然是Windows ... 有什么想法吗?

4 个答案:

答案 0 :(得分:194)

评论说明

// 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",

答案 1 :(得分:9)

EditorConfig projectGithub link)是另一种非常可行的解决方案。类似于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文件。

答案 2 :(得分:1)

从LF到CRLF的chnage行结尾:

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

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

然后再按Ctrl + shift + p

空白输入框中的

2键入“Line unify ending”

3点击两次输入

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

答案 3 :(得分:0)

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

  1. Ctrl + Shift + P 类型 inst +选择 Install Package
  2. 输入行尾 +选择统一行尾
  3. 安装后, Ctrl + Shift + P +输入 end +选择 Line Ends Unify
  4. OR (而不是3)副本:

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

    User 数组(右窗格,打开[后),位于 Preferences-> KeyBindings 中,然后按 Ctrl + Alt + L

another answer中所述:

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

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

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

  •   

如果您具有 node_modules build 或其他自动生成的文件夹,请在运行程序包之前删除它们

运行程序包时:

  1. 在底部要求您选择要搜索的文件扩展名(以逗号分隔的列表)(键入您需要加快替换速度的唯一扩展名,例如js,jsx)。< / li>
  2. 然后询问您要使用哪个输入行结尾,例如如果需要 LF ,请输入\n
  3. ENTER 并等待,直到看到带有 LineEndingsUnify Complete 的警报窗口。