在 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 manager
、Installed
选项卡)。否则,将没有 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++ 中将制表符转换为空格的主要内容,如果未能解决你的问题,请参考以下文章