将制表符转换为Notepad ++中的空格


1075

如何在Tabpad ++中将制表符转换为空格?

我发现了一个网页,暗示有可能,但是我找不到有关如何执行此操作的任何信息。

我希望能够做到这一点,因为某些Web表单不尊重其中带有制表符的代码。


4
制表符缩进= 1x个字符,空格缩进= 3个以上字符。
Yousha Aleayoub 2015年

科学很容易做到这一点。太糟糕了,它的扩展性不及Notepad ++。
bvj

1
我似乎进入了暮光区。我的Notepad ++总是在每个选项卡上加三倍间距,并且我在IDE中更新的任何内容都没有改变行为。我已经使用了多年,在o_o之前从未遇到过这个问题。即使降级也不能解决问题。是的 我在叫 暮光区功能。
kayleeFrye_onDeck '18

@YoushaAleayoub 1个空间= 1个空间,1个制表符=每个人都不同。
csabinho

3
@csabinho就是重点。因此,每个人都可以自定义它并将其设置为自己的大小。#Freedom :)
Yousha Aleayoub

Answers:


985

要将现有的选项卡转换为空格,请按Edit->Blank Operations->TAB to Space

如果将来您想在按Tab键时输入空格而不是Tab:

  1. 转到Settings->Preferences...->Language(从7.1版开始)或Settings->Preferences...->Tab Settings(以前的版本)
  2. 校验 Replace by space
  3. 可选)您可以通过更改Tab size字段来设置代替Tab键使用的空格数。

替换为空间的屏幕截图


29
@Algina-您可以更改Notepad ++的设置,以将选项卡自动转换为空格-只需转到:设置-首选项-选项卡设置-勾选“按空格替换”框-就像该答案中已经描述的mrzli。
AddingColor

3
这自然受“设置”-“首选项”-“制表符设置”-“制表符大小”中定义​​的制表符大小的影响。
caw

6
我只想补充一点,对我来说,路径是:Settings=> Language Menu/Tab Settings=> Replace by space(在右下角)。这几乎就像mrzli所说的那样,但是我很难注意到它在哪里说Tab Settings。(我知道我是盲人!)
Dzyann

11
Notepad ++ v7.1中没有设置->首选项...->选项卡设置现在位于设置->首选项->语言
Dave Burton

3
我正在使用v7.2.2,可以使用来将制表符更改为空格Edit -> Blank Operations -> Tab to Space。另外,Tab Settings现在在Edit -> Preferences -> Language。虽然,我不知道该怎么办Tab Settings。我已选中的Replace by spacejavascript,但按Tab键时仍会得到一个标签。它不应该打印4个空格吗?
akinuri '17

585

已淘汰:此答案仅对旧版本的Notepad ++正确。现在已在Notepad ++中内置了制表符/空格之间的转换,并且“插件管理器”对话框中不再提供TextFX插件。

  • 首先在中设置“用空格替换”设置Preferences -> Language Menu/Tab Settings
  • 接下来,打开您希望替换标签的文档。
  • 突出显示所有文本(CTRL+ A)。
  • 然后选择TextFX -> TextFX Edit -> Leading spaces to tabs or tabs to spaces

注意:确保已安装TextFX Characters插件(Plugins -> Plugin manager -> Show plugin managerInstalled选项卡)。否则,将没有TextFX菜单。


1
是的,这比进行搜索/替换更为明智,并且TextFX内置于Notepad ++。
rjh

130
菜单中放置不佳的功能只是名称不佳。
spoulson

14
这个问题的最佳答案(也许不是作者预期的那样)是下面提供的空格标签。该问题要求所有制表符都为空格,而此答案仅转换前导空格。例如,如果您需要在保持列位置的同时转换以制表符分隔的表格数据,那么此答案将无济于事。该插件是该问题的唯一Notepad ++解决方案,我可以在这里看到。
Binary Phile 2011年

4
我需要进入插件管理器并安装TextFX插件,但是在完成此操作后,其余说明就可以了。
丽贝卡·切诺夫

12
答案似乎是错误的。如Binary Phile所示,它仅转换前导制表符。在更高的版本中,还有一个选项“编辑”->“空白操作”->“制表符”以空格,但这也不能按要求工作。据我所知,NP ++中目前没有开箱即用的方法。还没有尝试过Binary Phile提到的插件。
Stijn de Witt

228

设置->首选项->编辑组件(选项卡)->选项卡设置(组)->用空格替换

在版本5.6.8(及更高版本)中:

设置->首选项... ->语言菜单/选项卡设置->选项卡设置(组)->用空格替换


谢谢回复。我希望有一种方法可以将其应用于突出显示的文本块。我更喜欢使用标签。我只希望能够在将一些代码粘贴到表单之前切换到空格。
Helephant,2009年

3
虽然Dror的回答肯定是“答案”,但对于其他用途,这肯定也很有帮助!
Marc Bollinger

不是问题的答案,而是我一直在寻找的答案。干杯,阿伦。
BrezzaP

哇!关于(显然)简单任务的传闻如此之多。用\ t替换,扩展开关对我来说很好用
徘徊

3
5.9.3版具有“编辑”->“空白操作”->“ TAB到空间”。参见mrzli的回答。
koppor 2012年

148

您需要更换\t -确保使用扩展模式!

更换


22
只是为了强调,您需要在“替换为”框中放置四个空格(或两个,或其他)。
哈森

1
您可以将\ t(制表符)替换为任意数量的空格,请参见wiki.answers.com/Q/How_many_spaces_is_a_tab
Dror

7
这仅适用于行首的制表符。例如,在这样的行中(使用[tab]表示标签):“ [tab] foo [tab] bar”,标签大小为4个空格,第一个标签应为4个空格,而第二个标签应为只有1个空间。
墨卡托

4
@DaveE不,墨卡托的案例是TAB如何工作的普遍案例。尽管在评论中提到了该问题,但不是在原始问题中提到,但OP实质上希望的是从制表符到空格的透明切换,也就是说,他不应该通过照顾转换来知道转换已经完成。通过获取选定的文本并将其扩展到行的开头,可以实现计算并完全执行墨卡托暗示的操作。它仅取决于扩展到行数限制的文本。因此,无需根据具体情况决定。正是UNIX中的expand命令所做的
Paralife 2011年

2
其他答案可能会回答特定的问题,但是我认为这个答案是最好的,因为它回答了如何将tab替换为任何内容,而不仅仅是空格。
Kik 2014年

84

请按照以下步骤将空格转换为制表符,反之亦然:

空格-制表符


1
在Notepad ++ v6.3.2和多个早期版本中可用。
AdrianHHH 2013年

对于7.5.4版,这对我来说很有吸引力,无需安装任何其他插件即可获取所有制表符(不仅是开头)
J. Paulding

是否有任何快捷键可以执行相同的操作。?
Akshat Chaturvedi

26

我刚刚发布了一个Notepad ++插件,用于将制表符转换为空格。是的,它将转换一行中间的制表符。是的,它考虑了选项卡式字段中的其他字符。一探究竟。


1
如果我想定义一个带有标签的字符串怎么办?它也会更改我的源代码和字符串文字吗?
maxwellb 2010年

就像制表符到空格的魅力一样。不过,仅此而已。
Binary Phile 2011年

谢谢,太好了。实际上,这是涵盖所有情况的问题的唯一真正答案-前导选项卡或嵌入式选项卡,并考虑文本中的位置和适当的选项卡宽度。
RenniePet11年

这应该是该问题的答案,尤其是由于TextFX不在默认的Notepad ++安装中。该插件可以完美运行。谢谢!
布朗

2
5.9.3版具有“编辑”->“空白操作”->“ TAB到空间”。参见mrzli的回答。
koppor 2012年

10

简单的方法:

  1. 突出显示单个标签区域
  2. 复制
  3. 调出查找/替换
  4. 粘贴到查找字段
  5. 单击进入替换字段并单击空格键
  6. 然后全部替换。

2
这是一种懒惰的方法,通常是我的MO:]
matt lohkamp,2010年

3
这也是记事本(不是++)的处理方式。
maxwellb 2010年

在Notepad ++ 6.5.5中,尝试使用TASB(用逗号分隔),这是唯一对我有用的方法:键入a tab,选择它和copy,然后将其粘贴到替换字段中。(无论我选择还是选择,都无法/t放入Replace with框中。)ExtendedRegular Expression
Doug_Ivison 2014年

5
@Doug_Ivison这是因为/t不是转义序列;这是一个斜杠,一个字母t。如果要替换标签,请使用\t。因此Extended (\n, \r, \t, \0, \x...)
丹·贝查德

@丹你是对的...谢谢。复制/粘贴有效,并且\t有效。
Doug_Ivison


7

我没有阅读所有答案,但是没有找到想要的答案。

我使用Python,不想每次想编译代码时都进行查找/替换或``空白操作''...

因此,对我而言,最好的解决方案是即时进行

这是我发现的简单解决方案

去:

  1. 菜单设置->首选项
  2. 选择选项卡设置
  3. 选择您的语言类型(例如Python)
  4. 选择复选框“使用默认值”
  5. 选择复选框“按空间替换”

在此处输入图片说明


这在版本7.1(2016-10-16)中再次更改(从“语言菜单/选项卡设置”更改为“语言”(在更旧的版本中为“选项卡设置”(如此答案)))。
彼得·莫滕森

3

首选项设置中没有“编辑组件”选项卡。您需要进入“语言菜单/选项卡设置”,其中有一个选项可控制选项卡的行为。您甚至可以根据文件的语言将其设置为不同的工作方式。


并在此处进行设置后,如前所述使用TextFX (TextFX-> TextFX Edit->将空格引导至选项卡或将选项卡引导至空格)。这绝对是Npp最新版本中采用的方法。
Cees Meijer,

版本7.1(2016-10-16)再次更改(从“语言菜单/选项卡设置”更改为“语言”
Peter Mortensen18年

2

CLR Tabs to Spaces插件应该是一个不错的选择。我已经使用过了,而且效果很好。


完美的胜利!高亮显示文本,插件> CLR制表符到空格>制表符到空格。该插件考虑了制表符需要多少空间,即,间隔输出看起来与制表符输出完全相同。
sonjz 2013年

2

我遵循以下简单方法:

  • 双击(突出显示)单个选项卡(即:\ t)。
  • ctrl + FFind/repace)。
  • 您可能在字段上看不到\ t单个选项卡区域Find What:。但是不用担心。
  • 输入spaceReplace With:字段。
  • 点击Replce All

做完了!:)

看到:

用<code> Notepad ++ </ code>中的* Space *替换* Tab *

注意: 此方法适用于反向(替换空间标签)的情况下也。


如果从搜索模式中选择“扩展”,则可以输入\ t,并且还会找到该标签。此解决方案的问题在于它不会调整标签的间距,即,如果一个标签最多包含5个空格,则该标签之前的文本可能是1-4个空格...
sonjz

1
不知道为什么这个答案被否决了,但是对我来说,这可能是最好的,因为它体现了以下内容:KISS。显然,它永远不会涵盖插件会带来的所有麻烦和配置问题,但是再一次,不得不依靠插件来完成如此简单的操作对于一般情况而言简直是疯了。一路吻。
luis.espinal 2013年

2

如果您碰巧在Unix环境中工作,那么您需要使用expand命令:


1
Notepad ++是否仅Windows?
该人

1

设置>首选项>选项卡设置选中“按空格替换”。注意上面有Tab大小:4单击这四个,将打开一个窗口,其中包含将值更改为另一个整数的选项。

输入所需的整数,然后按ENTER键。

在那里,您<3。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.