如何将sublime配置为始终在保存时转换为unix行结尾?

时间:2016-09-24 20:18:42

标签: sublimetext3 sublimetext line-endings

我希望我在Sublime Text中保存的所有文件都是Unix行结束格式,即使我打开最初以不同格式保存的文件,我后来在Sublime中编辑过?简单地设置"default_line_ending": "unix"是不够的,因为这并不像我提到的那样转换Windows文件。我该怎么做?

2 个答案:

答案 0 :(得分:6)

这是一个快速插件来完成这项工作:

import sublime_plugin

class SetUnixLineEndingsCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        self.view.set_line_endings("unix")


class SetLineEndings(sublime_plugin.EventListener):
    def on_pre_save(self, view):
        view.run_command("set_unix_line_endings")

在Sublime中,选择 Tools → Developer → New Plugin… 。在打开的窗口中,删除那里的所有内容并将其替换为上面的程序。点击保存,保存文件对话框应在Packages/User目录中打开,其位置因操作系统和安装类型而异:

  • Linux:~/.config/sublime-text-3/Packages
  • OS X:~/Library/Application Support/Sublime Text 3/Packages
  • Windows常规安装:C:\Users\YourUserName\AppData\Roaming\Sublime Text 3\Packages
  • Windows便携式安装:InstallationFolder\Sublime Text 3\Data\Packages

将文件另存为set_unix_line_endings.py,它会立即激活。

如果您编辑内容然后保存,插件将只更改文件的行结尾。打开要查看的文件不会改变任何内容。

如果您不再希望插件处于活动状态,只需输入您的Packages/User目录,然后删除该文件或将其后缀更改为.py以外的其他内容 - set_unix_line_endings.py.bak适合我。

答案 1 :(得分:1)

在SublimeText3(可能是其他版本)中,您可以在用户首选项中定义它。

在菜单栏上打开“首选项->设置”

在打开的右窗格中,您将找到正在编辑的“ Preferences.sublime-settings-用户”。在该窗格中,输入以下JSON格式的选项:

{
    // 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": "unix",

    // Display file encoding in the status bar
    "show_encoding": true,

    // Display line endings in the status bar
    "show_line_endings": true
}

注意:我在这里添加了几个额外的功能。一个告诉您正在使用哪种文件格式以及该文件的编码格式。这些将显示在ST3应用程序底部的工具栏中。