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

Posted

技术标签:

【中文标题】在 Notepad++ 中将制表符转换为空格【英文标题】:Convert tabs to spaces in Notepad++ 【发布时间】:2010-10-02 02:04:57 【问题描述】:

如何?

我发现a webpage 表明这是可能的,但我找不到任何有关如何执行此操作的信息。

我希望能够做到这一点,因为某些 Web 表单不尊重其中包含选项卡的代码。

【问题讨论】:

【参考方案1】:

要将现有的制表符转换为空格,请按Edit->Blank Operations->TAB to Space

如果以后你想在按tab键时输入空格而不是tab:

    转到Settings->Preferences...->Language(自 7.1 版起)或 Settings->Preferences...->Tab Settings(以前的版本) 检查Replace by space可选)您可以通过更改Tab size 字段来设置用于代替制表符的空格数。

【讨论】:

@Algina - 您可以更改 Notepad++ 的设置以自动将制表符转换为空格 - 只需转到:设置 - 首选项 - 选项卡设置 - 勾选“用空格替换”框 - 就像 mrzli 已经在这个答案。 这自然会受到“设置”--“首选项”--“标签设置”--“标签大小”中定义​​的标签大小的影响。 我只想补充一点,我的路径是:Settings => Language Menu/Tab Settings => Replace by space(在右下角)。几乎就像 mrzli 所说的那样,但我很难注意到它在哪里写着 Tab Settings。 (我知道我是瞎子!) 没有设置 -> 首选项... -> Notepad++ v7.1 中的选项卡设置 现在位于设置 -> 首选项 -> 语言下 我使用的是 v7.2.2,我可以使用 Edit -> Blank Operations -> Tab to Space 将制表符更改为空格。 Tab Settings 现在也在 Edit -> Preferences -> Language 中。虽然,我不明白Tab Settings 的作用。我已经检查了Replace by space 框中的javascript,但是当我按下tab 键时我仍然得到一个tab。它不应该打印 4 个空格吗?【参考方案2】:

我没有阅读所有答案,但我没有找到我正在寻找的答案。

我使用Python 并且不想在每次编译代码时都进行查找/替换或“空白操作”...

所以对我来说最好的解决方案是它即时发生

这是我找到的简单解决方案

转到:

    菜单设置->首选项 选择选项卡设置 选择您的语言类型(例如 Python) 选中复选框“使用默认值” 选中复选框“用空格替换”

【讨论】:

This changed again in version 7.1 (2016-10-16)(从“语言菜单/选项卡设置”“语言”(并且是“选项卡设置” i> 在更旧的版本中(如在这个答案中)))。【参考方案3】:

如果你碰巧在 Unix 环境中工作,expand 命令就是你所需要的:

【讨论】:

Notepad++ 不是仅限 Windows 的吗? 它可以通过 Wine 在 linux 中使用。虽然性能很差,YMMV【参考方案4】:

在 5.8.7 版本中:

菜单设置 -> 首选项... -> 语言菜单/选项卡设置 -> 标签设置(您可以选择将标签替换为空格的语言。这很酷!) -> 取消选中使用默认值并选中用空格替换

【讨论】:

“替代标签的语言”是什么意思? This changed again in version 7.1 (2016-10-16)(从“语言菜单/选项卡设置”“语言”【参考方案5】:

简单的方法:

    突出显示单个选项卡区域 复制 调出查找/替换 粘贴到查找字段中 点击替换字段并按空格键 然后全部替换。

【讨论】:

【参考方案6】:

已过时:此答案仅适用于旧版本的 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 菜单。

【讨论】:

只是在一个位置不佳的菜单中命名不佳的功能。 这个问题的最佳答案(也许不是作者想要的)是下面提供的空格插件。该问题要求将所有制表符转换为空格,而此答案仅转换 leading 空格。例如,如果您需要在保持列位置的同时转换与制表符隔开的表格数据,那么这个答案对您没有帮助。该插件是我可以在此处看到的该问题的唯一 Notepad++ 解决方案。 我需要进入插件管理器并安装 TextFX 插件,但在我完成此操作后,其余说明都很好。 答案似乎是错误的。正如 Binary Phile 所示,它只转换前导制表符。在以后的版本中,还有一个选项 Edit -> Blank Operations -> TAB to space,但这也不能按要求工作。据我所知,目前在 NP++ 中没有办法开箱即用。没有尝试过 Binary Phile 提到的插件。 顺便说一句 - 切换到用空格替换后(2 个空格)我不得不关闭并打开 NP++ 否则它是错误的(有时仍然有 4 个空格)【参考方案7】:

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

【讨论】:

只是强调一下,您需要在“替换为”框中放置四个空格(或两个,或其他)。 您可以将\t(制表符)替换为任意数量的空格,参见wiki.answers.com/Q/How_many_spaces_is_a_tab 这仅适用于行首的制表符。例如。在这样的一行中(使用[tab]表示一个选项卡):“[tab]foo[tab]bar”,选项卡大小为4个空格,第一个制表符应该是4个空格,但第二个制表符应该只有1 个空格。 @mercator - 您的情况完全取决于上下文。如果是这种情况,OP 可以使用“查找下一个”/“替换”来跳转到下一个事件并做出逐案决定。最初的问题似乎没有表明这种担忧。 @DaveE 不,墨卡托案例是 TAB 工作原理的普遍案例。虽然在评论中而不是在原始问题中提到,但本质上 OP 想要的是从制表符到空格的透明切换,也就是说,他不应该通过查看转换来知道转换已经完成。通过获取选定的文本并将其扩展为行首,可以实现计算并完全按照墨卡托的含义进行。它仅取决于扩展到行限制的文本。因此,不需要逐案决定。这正是 UNIX 中的 expand 命令所做的【参考方案8】:

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

输入所需的整数并按 ENTER 键。

你有它

【讨论】:

谢谢!更准确地说:设置>首选项>语言>选项卡设置选中“用空格替换”。 (记事本++ v7.9)【参考方案9】:

按照此过程将空格转换为制表符,反之亦然:

【讨论】:

在 Notepad++ v6.3.2 和几个更​​早的版本中可用。【参考方案10】:

我遵循这个简单的方法:

双击(突出显示)单个标签(即:\t)。 请按ctrl + F (Find/repace)。 您可能在Find What: 字段中看不到\t单个选项卡区域。不过不用担心。 在Replace With: 字段中输入space。 点击Replce All

完成! :)

见:

注意: 此方法也适用于反转(用 tab 替换 空格)的情况。

【讨论】:

如果您在搜索模式中选择“扩展”,您可以输入\t,它也会找到该选项卡。此解决方案的问题是它不调整制表符的间距,即,如果制表符最多有 5 个空格,则制表符之前的文本可能是 1-4 个空格...【参考方案11】:

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

在 5.6.8(及以上)版本中:

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

【讨论】:

5.9.3 版具有编辑->空白操作->制表符到空格。请参阅 mrzli 的回答。 This changed again in version 7.1 (2016-10-16)(从“语言菜单/选项卡设置”“语言”【参考方案12】:

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

【讨论】:

并在此处设置后,使用 TextFX (TextFX -> TextFX Edit -> 前导空格到制表符或制表符到空格) 如前所述。这绝对是最新版本的 Npp 中要走的路。 This changed again in version 7.1 (2016-10-16)(从“语言菜单/选项卡设置”“语言”

以上是关于在 Notepad++ 中将制表符转换为空格的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Vim 或 Linux 中将空格转换为制表符?

notepad ++ 将制表符(tab)替换为空格

如何在现有文件中将制表符转换为空格,反之亦然

notepad ++ 将制表符(tab)替换为空格

将多个文件中的空格转换为制表符 Sublime Text 2

在vim中用空格替换制表符