How do I automatically trim trailing whitespace with Notepad++?

73

17

I don't want to delete the empty lines completely, but I want to remove the trailing tabs and whitespaces in them. Eclipse usually does it (through a preference setting) when we save the file.

For example, the file before saving ($ = end of line):

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

... and when I save this in the editor, Eclipse does the following:

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

How can I automatically trim trailing whitespace with Notepad++?

Srikanth

Posted 2014-01-09T18:18:41.450

Reputation: 3 769

To trim whitespace from multiple files at once, do a Find & Replace for the regular expression [ \t]+$. (Screenshot) (Source)

– Stevoisiak – 2017-09-27T20:13:55.607

Answers

78

You should be able to do a regular expression find/replace in Notepad++ using a pattern like \s+$.

There are also a few options under menu Edit -> Blank Operations that may fit your needs.

Under the "Macro" menu there's an option for "Trim trailing and save". If you need to do a regular expression it may be possible to create a macro however I've never tried them.

johanno

Posted 2014-01-09T18:18:41.450

Reputation: 894

Searching \s+$ will match any empty line, regardless of whitespace. I recommend using [ \t]+$ instead. (See How do I remove trailing whitespace using a regular expression?)

– Stevoisiak – 2017-09-27T19:48:50.267

9yes in my version of Notepad++, there's an Edit -> Trim Trailing Space, but can I trigger that automatically for every save? – Srikanth – 2014-01-09T18:36:26.767

5There's an option for "Trim trailing and save" under the Macro menu – johanno – 2014-01-09T18:39:58.340

23I have bound the Ctrl+S key to the Macro -> Trim Trailing and save option, using the Settings -> Shortcut Mapper... option. This is much better than having to remember to run the macro all the time. :) – Casey Kuball – 2014-01-09T22:54:35.600

64

Alt+Shift+S does what you want. In fact it also saves the file.

Update

As 10basetom noted, you can assign a different shortcut to this macro. You can control your shortcuts under Settings > Shortcut Mapper > [Macros].

enter image description here

kon psych

Posted 2014-01-09T18:18:41.450

Reputation: 741

10To strip trailing spaces when you save: (1) Remove the default Save shortcut (Ctrl+S), then (2) assign the "Trim Trailing and save" macro to Ctrl+S. – thdoan – 2015-03-03T04:33:22.727

1And to remove the default Save shortcut, double click on Shortcut field and then select None from the combo box. – Mitch – 2015-12-06T11:50:53.183

2I found this page, updated my shortcuts as you suggested and used it happily ever after. Then recently I had to setup a new machine and had completely forgotten how I had done it before... Searched again and found this answer again! You should get +2 for helping me like this! – Stijn de Witt – 2016-01-11T20:59:45.443

Settings > Shortcut Mapper, then tab 'Macros' – bonob – 2016-02-26T09:22:12.077

This should be the selected answer for me ^^ – Nam G VU – 2016-02-29T04:17:59.213

In newer versions you find in the top Menu in Run->Modify Shortcut/Delete command->tab Main menu. Then clear the default CTRL+S, and then assign in tab Macro "Trim Trailing and save" to CTRL+S – João Pimentel Ferreira – 2017-08-05T15:51:28.580

4

I changed the shortcuts to find a solution to this. I removed the save shortcut (shortcut mapper -> main menu -> save) and mapped Ctrl+S to the "Trim Trailing and Save" macro (shortcut mapper -> macros -> trim trailing and save). This way the macro replaces the save functionality and there's no need to remember the Alt+Shift+S shortcut.

Halcyon

Posted 2014-01-09T18:18:41.450

Reputation: 477

4

Plugins > Plugin Manager > Show Plugin Manager
Under the Available tab, select EditorConfig and click [Install]

Add an .editorconfig file to the folder (name it .editorconfig. to avoid Windows error "You must type a filename" - the last dot will be removed)

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

EditorConfig can also specify encoding, indent and newline character(s), etc.

Webveloper

Posted 2014-01-09T18:18:41.450

Reputation: 141

1

Seems that the EditorConfig plugin for Notepad++ does not actually support the trim_trailing_whitespace option: https://github.com/editorconfig/editorconfig-notepad-plus-plus

– jpa – 2015-09-01T08:32:42.353

1

Support for trim_trailing_whitespace was added on 2016-04-20. /cc @jpa

– Stijn – 2017-12-05T21:37:28.343

I wish I could upvote this more, even if only for the .editorconfig. trick. To think that I had been resorting to creating dot-files via the Command Prompt like a caveman for all of these years. – jamesdlin – 2018-01-18T13:17:30.190

3

The existing answers look old.

Try below path:

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

Manohar Reddy Poreddy

Posted 2014-01-09T18:18:41.450

Reputation: 231

1I recorded a macro to "Trim Trailing Spaces" AND "convert Tabs to Spaces", for consistency in version control. I then Saved the macro with keycode combination Atl-T. Alt-T, Ctrl-S is Quick combo to trim, convert and save. I purposely do this in two steps, as I do not want to trim markdown files, or change tabs/trailing when editing other maintainer's files that may default to a different standard than I use. Notepad++ > Edit (menu) > Blank Operations > Trim Trailing Space and Notepad++ > Edit (menu) > Blank Operations > TAB to Space. (N++ also has ... Space to TAB options.) – SherylHohman – 2019-01-13T23:21:16.443

1

Another way -

  1. Edit > Blank Operations > Remove Unnecessary Blank and EOL
  2. Plugin > XML Tools > Pretty print (XML only - with line breaks)

'XML Tools’ is a plugin that we can install for notepad++

Pritam Karmakar

Posted 2014-01-09T18:18:41.450

Reputation: 111

1

Alt+Shift+S is the default shortcut for this. It's in the menu bar as Macro -> Trim Trailing and save. You can rebind this under Settings -> Shortcut Mapper -> [Macros].

Rebinding 'Trim Trailing and save' via Shortcut Mapper

Building on kon psych's answer, if you want to automatically trim whitespace any time you save, you can set this to replace the default Ctrl+S behavior. Just remember to change or remove the original save shortcut to prevent conflicts.

Disabling the default 'save' shortcut

Stevoisiak

Posted 2014-01-09T18:18:41.450

Reputation: 8 152

+1 for 'Just remember to change or remove the original save shortcut to prevent conflicts.' – Wafeeq – 2018-05-17T12:03:50.600

1

These are the precise steps to redirect the standard "Save" shortcut Ctrl+S to do instead "Trim Trailing and Save"

  • Settings->Shortcut Mapper...
  • Main Menu tab, double click on "Save", change S to None
  • Macros tab, double click on "Trim Trailing Space and Save", change to Ctrl+S

The Macros shortcut can also be modified from Macro->Modify Shortcut/Delete Macro...

Antonio

Posted 2014-01-09T18:18:41.450

Reputation: 308

Thanks, this is absolutely the best answer – simon tan – 2019-08-19T19:11:41.993

1

Ctrl + F -> Switch to tab Replace ->

Find what: \t\r

Replace with: \r

Make sure Extended search mode is on, then replace all.

If you want to save as well, johanno has the correct solution. Macro -> Trim Trailing and Save works as specified.

dr4g1116

Posted 2014-01-09T18:18:41.450

Reputation: 21

This answer is outdated – Antonio – 2018-03-08T18:18:06.030

1

In order to preserve the existing menu commands, map (previously unassigned) Ctrl+T to trim trailing spaces. Then, do Ctrl+T and Ctrl+S together.

This lets you make a small change to a file without confusing text comparison utilities and source control programs by changing (potentially) hundreds of lines.

al h

Posted 2014-01-09T18:18:41.450

Reputation: 11