Исправление Sublime Text 2 окончания строки?

177

Вот мой 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 ... Есть идеи?

mintobit
источник
Вы пытались нажать «Unix», закрыть, а затем снова открыть?
Преет Кукрети
@PreetKukreti Да. После повторного открытия снова «Windows». Это работает только для текущего файла, но не для нового файла.
минтобит
1
@ an1zhegorodov Вы сохранили файл раньше? это сработало для меня ...
Чарлисисто
1
Да. после сохранения файла у меня это тоже сработало.
Пьер Гильберт

Ответы:

199

В комментарии говорится

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

Leigh
источник
1
У меня та же проблема, но я правильно настраиваюсь "default_line_ending": "unix", я не знаю, почему, черт возьми, это не работает! Это сводит меня с ума! Я немного исследовал, и, видимо, это не помогло.
2013 года
@acrespo Вы уверены, что он не перекрывается другим файлом настроек? У Sublime их много :) - Если вы указали один тип строки, оканчивающийся в ваших специфических синтаксисе настройках, он переопределит пользовательские настройки, которые, в свою очередь, переопределят глобальные настройки
Ли
10
настройка "default_line_ending": "unix", отлично работает на новых файлах .. но не на существующих (старых) файлах. Кто-нибудь знает, как изменить это поведение?
предсказатель
11
Это можно сделать только вручную, было бы очень полезно, если бы это было автоматизировано. Вы можете изменить это, как показано на изображении выше Вид-> Окончание строк-> Unix @soothsayer
Звезда
5
@soothsayer, для существующих файлов выделите весь текст, затем view-> line endings-> unix. Затем сохраните документ.
AGS
9

Проект EditorConfig ( ссылка на Github ) - еще одно очень жизнеспособное решение. Подобно файлам типа sftp-config.json и .sublime-project / workspace, после настройки файла .editorconfig в папке проекта или в родительской папке каждый раз, когда вы сохраняете файл в этой структуре каталогов, плагин будет автоматически применить настройки в файле точек и автоматизировать несколько разных вещей для вас. Некоторые из них сохраняют окончания строк в стиле Unix, добавляют новую строку в конце файла, удаляют пробелы и корректируют настройки отступа / табуляции.


БЫСТРЫЙ ПРИМЕР

Установите плагин EditorConfig в Sublime с помощью Package Control; затем поместите файл с именем  .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файлы в верхних уровнях структуры каталогов.

Натан С.
источник
Недостаточно агрессивен Мне нужен плагин, чтобы определить цепочку людей, которые ведут к файлу с crlf, и ударить каждого из них по лицу. А затем сохраните его с помощью lf.
ArtOfWarfare
Спасибо, это была моя проблема, я установил этот плагин, и он брал неправильную конфигурацию из файла .config
Люк Робертсон
1

изменить окончания строки от LF до CRLF:

Откройте Sublime и выполните следующие действия: -

1 нажмите Ctrl + shift + p, затем установите имя пакета в строку, объедините окончания

затем снова нажмите Ctrl + Shift + P

2 в пустом поле ввода введите «Окончание унификации строки»

3 Хит введите дважды

Возвышенное время от времени может зависать и, как следствие, изменит окончание строки с LF на CRLF

партх шарма
источник
1

Самый простой способ изменить все файлы проекта одновременно (пакетно) - через пакет Unify Line Endings :

  1. Ctrl+ Shift+ Pвведите inst + выберите Install Package .
  2. Введите конец строки + выберите Унификация концов строк .
  3. После установки Ctrl+ Shift+ P+ введите end + и выберите Концы строк Unify .
  4. ИЛИ (вместо 3.) копия:

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

    в пользовательский массив (правая панель, после открытия [) в Предпочтения -> Связки клавиш + нажмите Ctrl+ Alt+ L.

Как уже упоминалось в другом ответе :

  • Символ возврата каретки ( CR ) ( 0x0D, \r) [...] Ранние операционные системы Macintosh (OS-9 и более ранние версии).

  • Символ перевода строки ( LF ) ( 0x0A, \n) [...] Системы на основе UNIX (Linux, Mac OSX)

  • Последовательность конца строки ( EOL ) ( 0x0D 0x0A, \r\n) [...] (не для Unix: Windows, ОС Symbian).

Если у вас есть node_modules , build или другие автоматически сгенерированные папки, удалите их перед запуском пакета.

Когда вы запускаете пакет:

  1. Внизу вас попросят выбрать, какие расширения файлов искать в списке через запятую (например, введите только те, которые вам нужны для ускорения замен js,jsx).
  2. Затем вас спросят, какой конец строки ввода использовать , например, если вам нужен тип LF\n .
  3. нажмите ENTERи подождите, пока не появится окно предупреждения с LineEndingsUnify Complete .
CPHPython
источник