Фиксирование Sublime Text 2 окончания строки?
Вот мой Settings - User
config:
{
"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
говорит:
![Comment to default_line_ending option]()
Когда я создаю новый файл, я проверяю строку, заканчивающуюся здесь:
![Check line ending]()
Как вы можете видеть, это все еще Windows...
Любые идеи?
Ответы
Ответ 1
В комментарии указано
// 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",
Ответ 2
Проект 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
на верхних уровнях структуры каталогов.
Ответ 3
для вывода строк строки из LF в CRLF:
откройте Sublime и выполните следующие действия: -
1 нажмите Ctrl + shift + p, затем установите окончание окончательной строки имени пакета
затем снова нажмите Ctrl + shift + p
2 в пустом поле ввода типа "Линия унифицировать окончание"
3 Хит введите дважды
Sublime может иногда зависнуть и в результате изменит окончание строки от LF до CRLF
Ответ 4
Самый простой способ изменить все файлы проекта сразу (пакетно) - через пакет Unify Line Endings:
- Ctrl + Shift + P введите inst + выберите Установить пакет.
- Введите конец строки + выберите Объединить окончания строки.
- После установки Ctrl + Shift + P + тип end + выберите Unify окончаний строки.
-
ИЛИ (вместо 3.) копия:
{
"keys": ["ctrl+alt+l"],
"command": "line_endings_unify"
},
в массив User (правая панель, после открытия [
) в разделе "Предпочтения" → "Привязки клавиш" + нажмите Ctrl + Alt + L.
Как уже упоминалось в другом ответе:
-
Символ возврата каретки (CR) (0x0D
, \r
) [...] Ранние операционные системы Macintosh (OS-9 и более ранние версии).
-
Символ перевода строки (LF) (0x0A
, \n
) [...] Системы на основе UNIX (Linux, Mac OSX)
-
Последовательность конца строки (EOL) (0x0D 0x0A
, \r\n
) [...] не-Unix операционных систем, включая Microsoft Windows, Symbian OS и другие.
Если у вас есть node_modules, build или другие автоматически сгенерированные папки, удалите их перед запуском пакета.
Когда вы запускаете пакет:
- Внизу вас попросят выбрать, какие расширения файлов искать в списке через запятую (введите только те, которые вам нужны для ускорения замен, например,
js,jsx
). - Затем вас спросят, какой конец строки ввода использовать, например, если вам нужен тип LF
\n
. - нажмите ENTER и дождитесь появления окна предупреждения с LineEndingsUnify Complete.