Исправление 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 ... Есть идеи?


Вы пытались нажать «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",


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 .
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.