63

Я не хочу полностью удалять пустые строки, но я хочу удалить конечные вкладки и пробелы в них. Eclipse обычно делает это (через настройку предпочтений), когда мы сохраняем файл.

Например, файл перед сохранением ($ = конец строки):

def shuffle(list):$
    import random $
    $
    random.shuffle(list)
    $
$

... и когда я сохраняю это в редакторе, Eclipse делает следующее:

def shuffle(list):$
    import random$
$
    random.shuffle(list)
$
$

Как я могу автоматически обрезать конечные пробелы с помощью Notepad++?

10 ответов10

71

Вы должны иметь возможность выполнять поиск / замену регулярного выражения в Notepad++, используя такой шаблон, как \s+$ .

В меню « Правка» -> « Пустые операции» также есть несколько параметров, которые могут соответствовать вашим потребностям.

В меню "Макрос" есть опция "Обрезать трейлинг и сохранить". Если вам нужно сделать регулярное выражение, может быть возможно создать макрос, однако я никогда не пробовал их.

60

Alt+Shift+S делает то, что вы хотите. На самом деле это также сохраняет файл.

Обновить

Как отметил 10basetom, этому макросу можно назначить другой ярлык. Вы можете управлять своими ярлыками в меню «Настройки»> «Ярлык ярлыков»> [Макросы].

4

Плагины> Менеджер плагинов> Показать менеджер плагинов
На вкладке Доступно выберите EditorConfig и нажмите [Установить]

Добавьте файл .editorconfig в папку (назовите его .editorconfig. Чтобы избежать ошибки Windows "Вы должны ввести имя файла" - последняя точка будет удалена)

# trims trailing whitespace for all files; filter like [*.{json,xml}]
[*]
trim_trailing_whitespace = true

EditorConfig также может указывать кодировку, отступ и символы новой строки и т.д.

4

Я изменил ярлыки, чтобы найти решение этой проблемы. Я удалил ярлык сохранения (отображение ярлыков -> главное меню -> сохранить) и сопоставил Ctrl+S с макросом "Trim Trailing and Save" (сопоставление ярлыков -> макросы -> трейлинг и сохранение). Таким образом, макрос заменяет функцию сохранения, и нет необходимости запоминать сочетание клавиш Alt+Shift+S.

1

Ctrl + F -> Перейти на вкладку Заменить ->

Найти что: \t \r

Заменить на: \r

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

Если вы хотите сэкономить, у Johanno есть правильное решение. Макрос -> Trim Trailing и Save работает как указано.

1

Чтобы сохранить существующие команды меню, сопоставьте (ранее не назначенные) Ctrl+T, чтобы обрезать конечные пробелы. Затем нажмите Ctrl+T и Ctrl+S вместе.

Это позволяет вам вносить небольшие изменения в файл, не путая утилиты сравнения текста и программы контроля версий, изменяя (потенциально) сотни строк.

1

Alt+Shift+S - это ярлык по умолчанию для этого. Он находится в строке меню как Macro -> Trim Trailing and save . Вы можете перепривязать это в Settings -> Shortcut Mapper -> [Macros] .

Перепривязка 'Trim Trailing and save' с помощью ярлыка быстрого доступа

Основываясь на ответе Кон Псих, если вы хотите автоматически обрезать пробелы в любое время, когда вы сохраняете, вы можете установить его, чтобы заменить поведение по умолчанию Ctrl+S. Просто не забудьте изменить или удалить исходный ярлык сохранения, чтобы предотвратить конфликты.

Отключение стандартного ярлыка «сохранить»

1

Существующие ответы выглядят старыми.

Попробуйте ниже путь:

Notepad++ > Edit (menu) > Blank Operations > Trim Trailing Space
1

По-другому -

  1. Правка> Пустые операции> Удалить ненужные пустые и EOL
  2. Плагин> Инструменты XML> Красивая печать (только XML - с переносами строк)

«XML Tools» - это плагин, который мы можем установить для notepad++

0

Это точные шаги для перенаправления стандартного сочетания клавиш "Сохранить" Ctrl+S вместо "Обрезать трейлинг и сохранить"

  • Настройки-> Ярлык ярлыков ...
  • Вкладка главного меню, дважды щелкните "Сохранить", измените S на Нет
  • На вкладке "Макросы" дважды щелкните "Обрезать конечный пробел и сохранить", измените на Ctrl+S

Ярлык Macros также можно изменить из Macro-> Modify Shortcut/Delete Macro ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .