Как настроить возвышенное, чтобы всегда преобразовывать в окончания строки unix при сохранении?

Я хочу, чтобы все файлы, которые я когда-либо сохранял в Sublime Text, были в формате окончания строки Unix, даже когда я открываю файлы, которые изначально были сохранены в другом формате, который я позже отредактировал в Sublime? Просто установить "default_line_ending": "unix" недостаточно, потому что это не конвертирует файлы Windows, как я уже упоминал. Как я могу это сделать?


person DrStrangepork    schedule 24.09.2016    source источник
comment
Menu > View > Line Endings или включите настройку "show_line_endings": false, тогда в правом нижнем углу строки состояния будет показано, какое окончание текущей строки, и когда вы щелкнете по нему, вы сможете выбрать, на какое его изменить.   -  person Gerard Roche    schedule 27.09.2016


Ответы (2)


Вот быстрый плагин для выполнения этой работы:

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, расположение которого зависит от ОС и типа установки:

  • Линукс: ~/.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 и либо удалите файл, либо измените его суффикс на что-то другое, кроме .pyset_unix_line_endings.py.bak хорошо работает для меня.

person MattDMo    schedule 25.09.2016

В SublimeText3 (возможно, в других версиях) вы можете определить это в своих пользовательских настройках.

В строке меню откройте «Настройки -> Настройки».

В открывшейся правой панели окна вы обнаружите, что редактируете «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.

person Steven K7FAQ    schedule 01.10.2019
comment
Спасибо @Steven_K7FAQ - person user3877654; 12.02.2021