Я работаю над файлами с разными окончаниями строк (unix и windows).
Я понимаю, что могу настроить SublimeText для использования одного или другого с помощью настроек "default_line_ending"
, но как я могу заставить его автоматически использовать правильный тип для данного файла (то есть не изменять окончания строк в файле при редактировании).
Sublime обнаружит окончания строк, используемые в файле, и продолжит использовать их (но см. нужно делать что-то особенное.
Если вы используете параметр Unix
, Sublime показывает вам в строке состояния, какой тип строки, заканчивающейся текущим файлом, используется (или будет использоваться; щелчок по нему открывает меню, которое позволяет вам выбрать новый). Как видно здесь, по умолчанию он отключен.
// Display line endings in the status bar
"show_line_endings": false,
Тем не менее, если вы открываете файлы, которые представляют собой только одну строку, на которой нет символа окончания строки, окончание строки по умолчанию соответствует значению в настройке Windows
, из-за чего может показаться, что Sublime неправильно определяет строку окончание использования. На самом деле проблема заключается в том, что, поскольку не вообще является символом окончания строки, у него нет возможности определить, какой тип файла вы намеревались открыть, и у него нет другого выбора, кроме как вернуться к значениям по умолчанию.
Если это проблема, вы можете смягчить ее, изменив значение по умолчанию для этого параметра:
// Set to true to ensure the last line of the file ends in a newline
// character when saving
"ensure_newline_at_eof_on_save": false,
Когда этот параметр включен, Sublime гарантирует, что последняя строка в файле имеет признак конца строки, что позволит правильно определить соответствующий тип файла при следующем его открытии. При первом сохранении файла, состоящего из одной строки, вам может потребоваться сначала изменить терминатор по умолчанию, чтобы убедиться, что он используется правильный (вот где указанная выше настройка пригодится).
Потенциальным недостатком этого является то, что все ваши файлы отображаются как минимум в две строки, чтобы убедиться, что там есть разделитель строки, который может быть или не быть проблемой.
В противном случае, если эти файлы имеют очень специфические имена, вероятно, может быть создан плагин, который перевернет настройку окончания строки при загрузке или непосредственно перед сохранением.
Следует отметить, что Sublime НЕ поддерживает идею файлов со смешанными окончаниями строк; Когда файл такого типа сохраняется обратно на диск, все разделители строк нормализуются до установленного в данный момент. Это потому, что Sublime нормализует данные в памяти и не ведет учет того, чем ранее заканчивалась каждая строка.