如何配置Sublime Text以在保存时始终转换为Unix行结尾?



我希望我保存在Sublime Text中的所有文件都是Unix行结束格式,即使我打开最初以不同格式保存的文件,我后来在Sublime Text中编辑?

简单地设置"default_line_ending": "unix"是不够的,因为它不能像我提到的那样转换Windows文件。我怎么做呢?

在SublimeText3(可能是其他版本)中,您可以在您的用户偏好中定义此

在菜单栏上打开"Preferences -> Settings"

在打开的右侧窗口窗格中,您将发现您正在编辑"Preferences"。sublime-settings - User"。在该窗格中输入以下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应用程序底部的工具栏中。

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

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 Regular Install: C:UsersYourUserNameAppDataRoamingSublime Text 3Packages
  • Windows Portable Install: InstallationFolderSublime Text 3DataPackages

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

如果你编辑了文件的内容然后保存,插件只会改变文件的行尾。只是打开文件来查看不会改变任何东西。

如果您不再希望插件活动,只需进入您的Packages/User目录,删除文件或将其后缀更改为.py - set_unix_line_endings.py.bak以外的内容

最新更新