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

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


person mintobit    schedule 10.08.2012    source источник
comment
вы пробовали щелкнуть Unix, закрыть, а затем снова открыть?   -  person Preet Kukreti    schedule 10.08.2012
comment
@PreetKukreti Да. После повторного открытия Windows снова. Это работает только для текущего файла, а не для нового файла.   -  person mintobit    schedule 10.08.2012
comment
@ an1zhegorodov вы раньше сохраняли файл? это сработало для меня ...   -  person charlysisto    schedule 30.09.2013
comment
Ага. после сохранения файла у меня тоже сработало.   -  person Pierre Guilbert    schedule 05.03.2014


Ответы (4)


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

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

person Leigh    schedule 10.08.2012
comment
У меня такая же проблема, но я правильно устанавливаю "default_line_ending": "unix", я не знаю, какого черта это не работает! Это сводит меня с ума! Я немного исследовал, и, по-видимому, у него нет полезного исправления. - person acrespo; 10.01.2013
comment
@acrespo Вы уверены, что он не отменяется другим файлом настроек? В Sublime их много :) - Если вы указали один тип строки, заканчивающейся в ваших предпочтительных параметрах синтаксиса, он переопределит пользовательские настройки, которые, в свою очередь, переопределят глобальные настройки. - person Leigh; 10.01.2013
comment
Я никогда не менял никаких настроек синтаксиса, но в настоящее время я использую настройки синтаксиса rails, возможно, дело в этом? Как я могу увидеть эти настройки? - person acrespo; 10.01.2013
comment
@acrespo В OSX это Sublime Text 2 -> Preferences -> Settings - More -> Syntax Specific - User - я полагаю, что это аналогичный путь в Windows / Linux, если вы их используете. - person Leigh; 11.01.2013
comment
Я добавил конфигурацию в настройки синтаксиса, но все еще не работает (файл с настройками ранее был пуст, так что это не могло ничего переопределить). Я серьезно не знаю, что, черт возьми, с этим не так. - person acrespo; 11.01.2013
comment
@acrespo Я действительно сомневаюсь, что могу помочь, вы можете дважды проверить, что он на самом деле установлен, подняв консоль python (ctrl + backtick) и запустив view.settings().get('default_line_ending') - Возможно, они правильно настроены в Sublime и испорчены в другом месте. - person Leigh; 11.01.2013
comment
установка default_line_ending: unix, отлично работает с новыми файлами .. но не с существующими (старыми) файлами. Кто-нибудь знает, как изменить такое поведение? - person soothsayer; 19.04.2013
comment
Это можно сделать только вручную, было бы очень полезно, если бы это было автоматизировано. Вы можете изменить это, как показано на изображении выше View- ›Line Endings-› Unix @soothsayer - person A Star; 30.09.2013
comment
@soothsayer, для существующих файлов выделите весь текст, затем view - ›line endings -› unix. Затем сохраните документ. - person AGS; 18.12.2013
comment
это те же настройки для Sublime3? - person Joe Platano; 02.12.2016

Проект 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 файлы на верхних уровнях структуры каталогов.

person Nathan C.    schedule 22.05.2013
comment
Недостаточно агрессивный. Мне нужен плагин, чтобы идентифицировать цепочку людей, которые приводят к файлу с crlf и ударить каждого из них по лицу. А затем сохраните его с помощью lf. - person ArtOfWarfare; 02.06.2017
comment
Спасибо, это была моя проблема, я установил этот плагин, и он брал неправильную конфигурацию из файла .config - person Luke Robertson; 17.05.2018

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

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

1 нажмите Ctrl + shift + p, затем установите строку имени пакета унифицируйте окончания

затем снова нажмите Ctrl + shift + p

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

3 Дважды нажмите Enter

Sublime может иногда зависать и в результате менять окончания строк с LF на CRLF

person parth sharma    schedule 31.08.2017

Самый простой способ изменить все файлы проекта сразу (пакетным) - использовать Пакет" Объединение окончаний строк ":

  1. Ctrl + Shift + P введите inst + выберите Установить пакет.
  2. Введите конец строки + выберите Объединить окончание строки.
  3. После установки Ctrl + Shift + P + введите end + выберите Line Endings Unify .
  4. ИЛИ (вместо 3.) скопируйте:

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

    в массив User (правая панель, после открытия [) в Preferences -> KeyBindings + нажмите Ctrl + Alt + L.

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

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

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

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

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

При запуске пакета:

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