it-swarm.com.ru

Как автоматически удалить конечные пробелы в Eclipse?

Вопрос состоит из двух частей, на одну из которых у меня уже есть ответ.

  1. Как автоматически удалить конечные пробелы из всего редактируемого файла ? -> Ответ: используйте AnyEdit plugin , который может быть установлен для этого при любом сохранении в файл.
  2. Как автоматически удалить конечные пробелы только из строк, которые я изменил ? -> Это я не знаю и был бы признателен за любую помощь.
407
Jan Żankowski
  1. Удаление пробела из всего редактируемого файла :

Preferences -> Java -> Editors -> Save Actions -> проверить Perform the selected actions on save -> проверить Additional actions -> нажмите Configure.. -> перейти к Code organizing вкладка -> проверить Remove trailing whitespace -> выбрать All lines,.

  1. Удаление пробелов только из строк, которые я изменил :

Preferences -> Java -> Editor -> Save Actions -> проверить "Perform the selected actions on save -> проверить Format source code -> выбрать Format edited lines,.

Обратите внимание, что нет необходимости нажимать Configure the formatter settings on the Formatter page - все стили кода автоматически включают удаление конечных пробелов. По крайней мере, я не смог найти параметр для этого в конфигурации Formatter, и он работал из коробки для встроенных Java Условных обозначений, Eclipse, Eclipse 2.1, а также GoogleStyle .

При использовании этой настройки вам, очевидно, также необходимо отключить решение части 1 вопроса.

Eclipse version checked: 4.5.2
125
Dan Berindei

Я предполагаю, что ваши вопросы касаются Java кода. Если это так, вам не нужны никакие дополнительные плагины для выполнения 1). Вы можете просто перейти к Preferences -> Java -> Editor -> Save Actions и настроить его на удалить конечные пробелы.

Судя по всему, вы также хотите сделать это для всей команды, верно? Чтобы упростить жизнь и избежать необходимости настраивать ее каждый раз, когда у вас появляется новое рабочее пространство, вы можете установить действие сохранения как предпочтение конкретного проекта, которое сохраняется в вашем SCM вместе с кодом.

Для этого щелкните правой кнопкой мыши свой проект и перейдите в Свойства -> Java Редактор -> Сохранить действия. Оттуда вы можете включить конкретные настройки проекта и настроить его для удаления конечных пробелов (среди других полезных вещей).

NB: эта опция была удалена в Eclipse Kepler (4.3) и следующих выпусках.

NB # 2: Опция, похоже, вернулась в Eclipse Luna - Luna Service Release 1a (4.4.1)

347
gcastro

Вам не нужен плагин для этого. Например, если вы кодируете Java, вы можете удалить конечные пробелы, конфигурируя действия сохранения:

Затмение 3.6

Preferences -> Java -> Editors -> Save Actions -> Проверить Perform the selected actions on save -> Проверить Additional actions -> Нажмите Configure.. кнопка.

В Code organizing вкладка, проверить Remove trailing whitespace

72
Dave

PyDev может сделать это либо Ctrl+Shift+F если у вас есть опция форматирования кода, или during saving:

Eclipse -> Window -> Preferences -> PyDev -> Editor -> Code Style -> Code Formatter:

Я использую по крайней мере это:

  • Автоформат перед сохранением
  • Правильные линии обрезки?
  • Добавить новую строку в конец файла
46
Ciantic

Сделайте следующее:

Preferences -> Java -> Editor -> Save Actions

enter image description here

34
Sumit Singh

Вы можете сопоставить ключ в Eclipse, чтобы вручную удалить конечные пробелы во всем файле, но только по запросу, а не автоматически при сохранении. (Предпочтение/Ключи, а затем сопоставить набор ключей с Файлом/Удалить конечные пробелы). Это может быть полезно, если вы хотите очистить все новые файлы, но оставить прежний код без изменений.

Другая стратегия заключается в том, чтобы активировать визуальное отображение пробелов, так что вы, по крайней мере, будете знать, когда добавляете пробелы в конце. Насколько я знаю, нет никакого способа отобразить только конечные пробелы, но я буду рад оказаться ошибочным.

19
Kena

В крайнем случае, для тех редакторов, которые вообще не поддерживают удаление конечных пробелов (например, редактор XML), вы можете удалить его из всех строк, выполнив поиск и замену, включив регулярные выражения, а затем найдя "[\ t] + $ "и заменить его на" "(пусто). Вероятно, есть лучшее регулярное выражение для этого, но оно работает для меня без необходимости устанавливать AnyEdit.

10
Malvineous

невозможно сделать это в Eclipse в общем виде прямо сейчас, , но это можно изменить дано с базовыми Java знаниями и некоторым свободным временем, чтобы добавить базовую поддержку для этого https://bugs.Eclipse.org/bugs/show_bug.cgi?id=180349

Зависимая проблема: https://bugs.Eclipse.org/bugs/show_bug.cgi?id=31117

8
anatoly techtonik

Я бы сказал AnyEdit тоже. Это не обеспечивает эту конкретную функциональность. Однако если вы и ваша команда используете функции AnyEdit при каждом действии сохранения, то при открытии файла у него не должно быть завершающих пробелов.

Таким образом, если вы измените этот файл и добавите новые конечные пробелы, то во время операции сохранения AnyEdit удалит только эти новые пробелы, поскольку они являются единственными конечными пробелами в этом файле.

Если по каким-либо причинам вам нужно оставить пробелы в строках, которые были не изменены вами, то у меня нет ответа для вас, и я не уверен, что такая функция существует в любом Eclipse плагин ...

8
Romain Linsolas

Для php есть также опция:enter image description here

5
HeyMan

Есть действительно простой способ сделать это с помощью sed, инструмента командной строки Unix. Возможно, вы могли бы создать макрос в Eclipse для запуска этого:

sed -i 's/[[:space:]]*$//' <filename>
4
jcoffland

Как сказал @Malvineous, это не профессионал, а обходной путь, чтобы использовать метод Find/Replace для удаления конечного пробела (ниже, включая вкладку U + 0009 и пробел U + 0020).
Просто нажмите Ctrl + F (или команду + F)

  1. Найти[\t ][\t ]*$
  2. заменить на пустая строка
  3. Используйте Регулярные выражения
  4. Заменить все

дополнительно:
Для удаления начального пробела найдите ^[\t ][\t ]* вместо [\t ][\t ]*$
Для удаления пустых строк найдите ^\s*$\r?\n

3
fuweichin

Я не знаю ни одного решения для второй части вашего вопроса. Причина в том, что не ясно, как определить я изменил. Изменилось когда? Просто между 2 сохранениями или между коммитами ... В основном - забудьте об этом.

Я предполагаю, что вы хотели бы придерживаться некоторого руководства, но не трогайте остальную часть кода. Но руководство должно использоваться в целом, а не для укусов и кусочков. Поэтому я предлагаю изменить весь код в соответствии с указаниями: это разовая операция, но убедитесь, что у всех ваших разработчиков одинаковый плагин (AnyEdit) с одинаковыми настройками для проекта.

1
van

Я использовал эту команду для git: git config --global core.whitespace cr-at-eol

Он удаляет ^M символы, которые заканчиваются.

1
user7577563