Текстовый редактор Atom удаляет завершающие пробелы при сохранении


116

Пользуюсь Sublime text. Сейчас пытаюсь Atom. Когда я сохраняю любой файл в виде возвышенного текста, он не включает завершающую пустую строку. Но при сохранении любого файла в Atomконце остается пустая строка. Как мне заставить Atomне оставлять конечные пробелы?


3
По умолчанию Atom придерживается определения строки POSIX: "A sequence of zero or more non- <newline> characters plus a terminating <newline> character." - stackoverflow.com/questions/729692
sepehr

Ответы:


191

Под вашим Atom Preferencesперейдите на Packagesвкладку и найдите whitespace. Нажмите на whitespaceпакет и снимите Ensure Single Trailing Newlineфлажок

введите описание изображения здесь


30
Я думаю, что было бы даже лучше, если бы мы сняли флажок «Игнорировать пробелы в текущей строке». Это приведет к удалению конечных пробелов текущей строки во время сохранения файла.
Гаган

Может ли это сообщение стать более загадочным? Lol - я просто очень рад, что Атом искажает длинный файл diff, потому что другой разработчик оставил несколько конечных пробелов только для того, чтобы обнаружить, что этот параметр невозможно найти по имени. Немного .. Кто-нибудь заметил, что название изменилось с Package на Settings?
jcalfee314

5
Возможно, это новая настройка, но Remove Trailing Whitespaceвнизу settingsраздела есть флажок . Снятие отметки сохраняет все конечные пробелы.
bluecollarcoder

19

На глобальном уровне это можно изменить с помощью settingsin Whitespacepackage, но если вы хотите отключить его для определенного языка, вам нужно использовать свойства с синтаксической областью в вашем config.cson.

'.text.html.php': # php overrides
  whitespace:
    ensureSingleTrailingNewline: false
    removeTrailingWhitespace: false

'.source.ruby': # ruby overrides
  whitespace:
    ensureSingleTrailingNewline: false
    removeTrailingWhitespace: false

Чтобы увидеть диапазон языков, перейдите на Packagesвкладку и найдите свой язык.

Нажмите на настройки языкового пакета, и вы увидите объем:


1
Ваш ответ даже более подробен, чем официальная документация на github.com/atom/whitespace , спасибо, что нашли время опубликовать это! :-) Я бы хотел настроить атом таким образом, но я не могу заставить его работать, атом продолжает превращать два завершающих символа новой строки в один в моих файлах jinja2. Объем есть .text.html.jinja, конфиг совпадает с вашим, но не работает. Тогда это глобально :-(
ssc

Изображение, показывающее, как найти прицел, было особенно полезным. С тех пор я также нашел области, перечисленные в селекторе грамматики (по умолчанию справа от окончаний строк, номера строки и кодировки в нижней части окна или с помощью ярлыка по умолчанию ctrl+shift+L).
Стив

9

Зайдите в пакеты и найдите «пробел», перейдите в его настройки и снимите последний флажок.

настройки Скриншот настроек

флажок Снимок экрана флажка


0

Чтобы добавить к ответу Дэна Молдавана .

У меня возникла эта проблема при работе над приложением Rails.

Я добавил .editorconfigфайл со следующими свойствами:

# editorconfig.org

root = true

[*]
charset = utf-8
end_of_line = lf
indent_size = 2
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true

[*.md]
trim_trailing_whitespace = false

И я добавил .gitattributesфайл со следующими свойствами:

# Enforce Unix newlines
* text=auto eol=lf

А потом мой редактор Atom столкнулся с проблемой:

1 проблема с .gitattributes

whitespace: возможно, что пакет "whitespace" препятствует надежной работе следующих свойств: insert_final_newline, trim_trailing_whitespace. Вы можете попробовать изменить конфигурацию или отключить пакет «пробелов» для решения проблем.

Вот как я это исправил :

  • Откройте редактор Atom
  • Перейдите в Edit> Preferences> Packages.
  • Введите пробел
  • Нажмите на появившийся пакет
  • Снимите отметку со следующего:
    • Обеспечить одиночный завершающий символ новой строки
    • Игнорировать пробелы в текущей строке
  • Оставьте флажок "Игнорировать только пустые строки" снятым

Скриншот исправления

Сохраните и закройте настройки.

Вот и все.

надеюсь, это поможет

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