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


70

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

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

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

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

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

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


Чтобы обрезать пробелы из нескольких файлов одновременно, выполните поиск и замену регулярного выражения [ \t]+$. ( Скриншот ) ( Источник )
Стевойсяк,

Ответы:


74

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

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

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


9
да, в моей версии Notepad ++ есть Edit -> Trim Trailing Space, но могу ли я запускать это автоматически при каждом сохранении?
Срикант

5
В меню «Макро» есть опция «Обрезать трейлинг и сохранить»
johanno

22
Я связал клавишу Ctrl + S с Macro -> Trim Trailing and saveопцией, используя Settings -> Shortcut Mapper...опцию. Это гораздо лучше, чем не забывать постоянно запускать макрос. :)
Кейси Кубалл

Поиск \s+$будет соответствовать любой пустой строке, независимо от пробела. Я рекомендую использовать [ \t]+$вместо этого. (См. Как мне удалить конечные пробелы с помощью регулярного выражения? )
Stevoisiak

63

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

Обновить

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

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


10
Чтобы убрать концевые пробелы при сохранении: (1) Удалите ярлык Сохранить по умолчанию (Ctrl + S), затем (2) назначьте макрос «Обрезать трейлинг и сохранить» для Ctrl + S.
thdoan

1
Чтобы удалить Saveярлык по умолчанию , дважды щелкните Shortcutполе и выберите его Noneв поле со списком.
Митч

2
Я нашел эту страницу, обновил мои ярлыки, как вы предложили, и с радостью использовал их с тех пор. Тогда недавно мне пришлось настроить новую машину и совершенно забыть, как я это делал раньше ... Поиск снова и снова нашел этот ответ! Вы должны получить +2 за помощь мне в этом!
Стейн де Витт

Настройки> Ярлык ярлыков, затем вкладка «Макросы»
боноб

Это должен быть выбранный ответ для меня ^^
Nam G VU

4

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

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

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

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


1
Похоже, что плагин EditorConfig для Notepad ++ на самом деле не поддерживает параметр trim_trailing_whitespace: github.com/editorconfig/editorconfig-notepad-plus-plus
jpa

1
Поддержка trim_trailing_whitespaceбыла добавлена 2016-04-20 . / cc @jpa
Stijn

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

4

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


2

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

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

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

1
Я записал макрос для «Trim Trailing Spaces» И «конвертировать Tabs в Spaces», для согласованности в управлении версиями. Затем я сохранил макрос с комбинацией клавиш Atl-T. Alt-T, Ctrl-SБыстро комбо обрезать, конвертировать и сохранить. Я намеренно делаю это в два этапа, так как не хочу обрезать файлы уценки или менять табуляции / трейлинг при редактировании файлов других сопровождающих, которые по умолчанию могут отличаться от используемых мной стандартов. Notepad++ > Edit (menu) > Blank Operations > Trim Trailing Spaceи Notepad++ > Edit (menu) > Blank Operations > TAB to Space. (N ++ также имеет ... Space to TABварианты.)
SherylHohman

1

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

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

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

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

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


Этот ответ устарел
Антонио

1

По-другому -

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

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


1

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

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

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

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


+1 за «Просто не забудьте изменить или удалить исходный ярлык сохранения, чтобы избежать конфликтов».
Wafeeq

1

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

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


1

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

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

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


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