1248

How do I convert tabs to spaces in Notepad++?

I found a webpage that suggests it's possible, but I couldn't find any information about how to do it.

I would like to be able to do that, because some web forms don't respect code with tabs in them.

Donald Duck
  • 8,409
  • 22
  • 75
  • 99
Helephant
  • 16,738
  • 8
  • 39
  • 36

12 Answers12

1280

To convert existing tabs to spaces, press Edit->Blank Operations->TAB to Space.

If in the future you want to enter spaces instead of tab when you press tab key:

  1. Go to Settings->Preferences...->Language (since version 7.1) or Settings->Preferences...->Tab Settings (previous versions)
  2. Check Replace by space
  3. (Optional) You can set the number of spaces to use in place of a Tab by changing the Tab size field.

Screenshot of Replace by space

Ale
  • 146
  • 7
mrzli
  • 16,799
  • 4
  • 38
  • 45
  • 1
    This is not a very good solution since you need to do it every time you pres tab key.. – Alg_D Mar 06 '15 at 19:30
  • 31
    @Algina - you can change the settings for Notepad++ to automatically convert tabs to spaces - just go to: Settings - Preferences - Tab Settings - tick the box "Replace by Space" - like mrzli already described in this answer. – AddingColor Apr 13 '15 at 05:59
  • 4
    This is affected by the tab size defined in "Settings" -- "Preferences" -- "Tab Settings" -- "Tab size", naturally. – caw Sep 14 '15 at 02:02
  • 7
    I just want to add that the path for me was: `Settings` => `Language Menu/Tab Settings` => `Replace by space` (In the bottom right corner). It is almost as mrzli said, but I had a hard time noticing where it said `Tab Settings`. (I know I am blind!) – Dzyann May 04 '16 at 13:22
  • 16
    There is no Settings -> Preferences... -> Tab Settings in Notepad++ v7.1 It's now under Settings -> Preferences -> Language – Dave Burton Oct 19 '16 at 21:05
  • 5
    I'm using v7.2.2 and I can change tabs to spaces using `Edit -> Blank Operations -> Tab to Space`. Also the `Tab Settings` are now in `Edit -> Preferences -> Language`. Although, I don't understand what the `Tab Settings` does. I've checked the `Replace by space` box for `javascript`, but I still get a tab when I press the tab key. Shouldn't it print 4 spaces instead? – akinuri Feb 03 '17 at 03:55
  • 1
    @akinuri Noticed there's a `javascript.js` option. That solved the problem. – akinuri Feb 03 '17 at 21:14
  • One off topic remark. When writing makefile you must remember that tab is needed at beginning of every new rule. – panako Oct 24 '19 at 13:42
  • I would like to point out in the current version of Notepad++, you can choose what languages specifically you want to replace tabs with spaces and which you do not, if you want to be language specific. I'd add it myself, but the edit queue is full. The original answerer though is a hero. – Chthonic One May 31 '22 at 18:12
  • Just remember the setup if you ever edit "makefiles" or Python ... just saying... Unfortunately, that setting is for all languages, so whatever choice you do, will apply to everything you edit in NPP – AlexD Jan 19 '23 at 16:21
590

Obsolete: This answer is correct only for an older version of Notepad++. Converting between tabs/spaces is now built into Notepad++ and the TextFX plugin is no longer available in the Plugin Manager dialog.

  • First set the "replace by spaces" setting in Preferences -> Language Menu/Tab Settings.
  • Next, open the document you wish to replace tabs with.
  • Highlight all the text (CTRL+A).
  • Then select TextFX -> TextFX Edit -> Leading spaces to tabs or tabs to spaces.

Note: Make sure TextFX Characters plugin is installed (Plugins -> Plugin manager -> Show plugin manager, Installed tab). Otherwise, there will be no TextFX menu.

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
user48821
  • 6,011
  • 2
  • 16
  • 7
  • 134
    Just a poorly named feature in a poorly placed menu. – spoulson Dec 16 '09 at 19:51
  • 14
    The best answer for the question (perhaps not as the author intended it) is the tabs to spaces plugin offered below. The question asks for all tabs to spaces, while this answer only converts *leading* spaces. If, for example, you need to convert tabular data spaced with tabs while maintaining column positions, this answer will not help you. The plugin is the only Notepad++ solution to that question which I can see here. – Binary Phile Apr 08 '11 at 18:46
  • 4
    I needed to go into the plugin manager and install the TextFX plugin, but after I had this the rest of the instructions were fine. – Rebecca Chernoff Sep 12 '11 at 04:12
  • 12
    Answer which seems to be wrong. As Binary Phile indicates it only converts the leading tabs. In later versions there is also an option Edit -> Blank Operations -> TAB to space, but that does not work as requested either. As far as I see it there is no way currently in NP++ out of the box. Haven't tried the plugin Binary Phile mentions. – Stijn de Witt Oct 25 '11 at 12:08
  • BTW - after switching to replace by spaces (2 spaces) I had to close and open NP++ otherwise it was buggy (still did 4 spaces sometimes) – brittohalloran Nov 21 '11 at 15:40
236

Settings -> Preference -> Edit Components (tab) -> Tab Setting (group) -> Replace by space

In version 5.6.8 (and above):

Settings -> Preferences... -> Language Menu/Tab Settings -> Tab Settings (group) -> Replace by space

Matthew Murdoch
  • 30,874
  • 30
  • 96
  • 127
Aron Rotteveel
  • 81,193
  • 17
  • 104
  • 128
  • 3
    Version 5.9.3 has Edit->Blank Operations->TAB to Space. See answer by mrzli. – koppor Sep 09 '12 at 10:33
  • [This changed again in version 7.1 (2016-10-16)](https://stackoverflow.com/questions/455037/convert-tabs-to-spaces-in-notepad/7471232#7471232) (from *"Language Menu/Tab Settings"* to *"Language"*) – Peter Mortensen Jul 03 '18 at 08:33
163

You need to replace \t - make sure you use extended mode!

Replace

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Dror
  • 7,255
  • 3
  • 38
  • 44
  • 23
    just to emphasize, you need to put four space (or two, or whatever) in the "replace with" box. – hasen Jan 18 '09 at 12:26
  • 1
    you can replace the \t (tab) to any number of spaces, see http://wiki.answers.com/Q/How_many_spaces_is_a_tab – Dror Jan 18 '09 at 12:31
  • 7
    This will only work properly for tabs at the start of a line. E.g. in a line like this (using [tab] to represent a tab): "[tab]foo[tab]bar", with a tab size of 4 spaces, the first tab should be 4 spaces, but the second tab should be only 1 space. – mercator Jan 18 '09 at 18:39
  • 1
    @mercator - your case is entirely context-dependent. If that is the case, the OP can use 'Find Next'/'Replace' to jump to the next occurrence and make case-by-case decisions. The original question doesn't *seem* to indicate that concern. – DaveE Nov 12 '09 at 17:11
  • 4
    @DaveE No, mercator's case is the universal case of how TAB works. Although mentioned in a comment and not in the original question, what essentially the OP wants is a transaperent switch from tabs to spaces, that is, he shouldnt know by looking after the conversion, that a conversion has been done. By taking the a selected text and expanding it to starts of lines, one could implement a calculation and do exactly what mercator implies. It is dependent only on the text expanded to line limits. So case by case decision is not needed. It is exactly what the expand command in UNIX does – Paralife Apr 15 '11 at 09:38
91

Follow this procedure to convert spaces to tabs or vice-versa:

Space - Tab

Keshava GN
  • 4,195
  • 2
  • 36
  • 47
13

The easy way:

  1. Highlight a single tab area
  2. Copy
  3. Bring up find/replace
  4. Paste into the find field
  5. Click into the replace field and hit the space bar
  6. Then replace all.
Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
matt lohkamp
  • 2,174
  • 3
  • 28
  • 47
9

I did not read all of the answers, but I did not find the answer I was looking for.

I use Python and don't want to do find/replace or 'blank operations' each time I want to compile code...

So the best solution for me is that it happens on the fly!

Here is the simple solution I found:

Go to:

  1. Menu Settings -> Preferences
  2. Choose Tab Settings
  3. Choose your language type (e.g. Python)
  4. Select checkbox 'Use default value'
  5. Select checkbox 'Replace by space'

Enter image description here

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Alg_D
  • 2,242
  • 6
  • 31
  • 63
  • 1
    [This changed again in version 7.1 (2016-10-16)](https://stackoverflow.com/questions/455037/convert-tabs-to-spaces-in-notepad/7471232#7471232) (from *"Language Menu/Tab Settings"* to *"Language"* (and was *"Tab Settings"* in an even older version (as in this answer))). – Peter Mortensen Jul 03 '18 at 08:37
8

In version 5.8.7:

Menu Settings -> Preferences... -> Language Menu/Tab Settings -> Tab Settings (you may select the very language to replace tabs to spaces. It's cool!) -> Uncheck Use default value and check Replace by space.

Screenshot of the Preferences dialog

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Stephenmjm
  • 111
  • 1
  • 5
3

There is no 'Edit Components' tab in the preferences setup. You need to go 'Language Menu/Tab Settings', there is an option in there to control tab behavior. You can even set it to work differently depending on the language of the file.

Elliot
  • 5,211
  • 10
  • 42
  • 70
  • And after setting it there, use TextFX *(TextFX -> TextFX Edit -> Leading spaces to tabs or tabs to spaces)* as described earlier. This is definitely the way to go in the latest version of Npp. – Cees Meijer Dec 09 '09 at 11:32
  • [This changed again in version 7.1 (2016-10-16)](https://stackoverflow.com/questions/455037/convert-tabs-to-spaces-in-notepad/7471232#7471232) (from *"Language Menu/Tab Settings"* to *"Language"*) – Peter Mortensen Jul 03 '18 at 08:34
2

I follow this simple way:

  • Double click (Highlight) single tab (ie: \t).
  • Press ctrl + F (Find/repace).
  • You may not see \t or single tab area on Find What: field. But don't worry.
  • Enter a space in Replace With: field.
  • Click Replce All .

Done! :)

See:

Replace *Tab* by *Space* in <code>Notepad++</code>

Note: This method applies to reverse (Replace a space by a tab) case too.

Keshava GN
  • 4,195
  • 2
  • 36
  • 47
  • If you select "Extended" from Search Mode, you can enter \t and it will also find the tab. The problem with this solution is it doesn't adjust the spacing for the tab, i.e., if a tab has a maximum of 5 spaces, your text before the tab may be 1-4 spaces... – sonjz Mar 07 '13 at 16:46
2

Settings > Preferences > Tab Settings Check the "replace by space". Notice above it there is Tab size: 4 Click on the four and a window will open with the option to change the value to another integer.

Put in your desired integer and press the ENTER key.

There you have it <3.

  • Thanks! To be preciser: Settings > Preferences > Language > Tab Settings Check the "replace by space". (Notepad++ v7.9) – Guido Lange Nov 11 '20 at 10:09
2

If you happen to work in a Unix environment, the expand command is what you need:

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Paralife
  • 6,116
  • 8
  • 38
  • 64