Предотвратить изменение концов строк в Sublime Text?

Я работаю над файлами с разными окончаниями строк (unix и windows). Я понимаю, что могу настроить SublimeText для использования одного или другого с помощью настроек "default_line_ending", но как я могу заставить его автоматически использовать правильный тип для данного файла (то есть не изменять окончания строк в файле при редактировании).

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
451
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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 нормализует данные в памяти и не ведет учет того, чем ранее заканчивалась каждая строка.

Другие вопросы по теме