如何在记事本++中自动格式化/缩进XML/HTML

How To Auto-Format / Indent XML/HTML in Notepad++

提问人:SBoss 提问时间:8/19/2011 最后编辑:MwizaSBoss 更新时间:3/1/2021 访问量:1360087

问:

有没有办法重新缩进代码块?我正在寻找类似于 Eclipse 中的 ++(自动格式/缩进)的东西。CtrlShiftF

需要明确的是,

  • 我已经知道如何在Notepad ++之外格式化XML(如前所述,Eclipse工作正常),因此我不需要一堆指向其他XML格式化工具的链接。
  • 我专门研究XML和HTML。
  • 理想情况下,有一个像 Eclipse 中一样方便的键绑定,这样我就不必中断我的工作流程。

我已经知道 NppAutoIndent - 它不起作用,因为我正在使用 XML、HTML 和 CSS。

HTML XML 记事本++ 缩进自动 格式化

评论

0赞 feetwet 7/31/2016
在 SoftwareRecs.SE 上提问和回答

答:

1007赞 remipod 1/9/2012 #1

由于我升级到 6.3.2,因此我使用 .XML Tools

  • 通过插件管理员安装 XML 工具(插件→插件管理员...然后搜索“XML Tools”,选中其框并单击“安装”按钮)。
  • 使用快捷键 +++(菜单 → 插件 → XML 工具 → Pretty Print)CtrlAltShiftB

enter image description here

enter image description here

在旧版本中: 菜单→ TextFX → HTML Tidy → Tidy: Reindent XML。

评论

11赞 remipod 3/5/2012
我安装了 5.9.8 版本并添加了 TextFX 作为插件。插件 -> 插件管理器 -> 显示插件管理器。选择 TextFX 并安装。重新启动 npp 后,菜单“TextFS”应该可见。
20赞 Amos M. Carpenter 8/17/2012
安装 HTMLTidy 插件时,请注意最新版本中缺少 libtidy.dll 错误
23赞 thdoan 1/19/2016
XML 工具将设置 XHTML 的格式,但不设置 HTML 的格式。尝试格式化:.你的代码需要采用这种格式才能工作,这对许多开发人员来说将是一个交易破坏者:<form><input><input><input><input><input></form><form><input /><input /><input /><input /><input /></form>
1赞 fl0w 7/4/2017
在菜单中找到“格式”选项:扩展名->XML 工具 ->漂亮的打印(带换行符)
2赞 Timothy Gonzalez 8/3/2017
要非常小心,如果 div 是空的,它会将 <div></div> 变成 <div/>。对于呈现 css 样式的 Web 浏览器来说,这可能是一个重大更改。
6赞 delliottg 10/31/2012 #2

要直接回答OP,请看一下这家伙的网站:Thomas Hunter Notepad++ Tidy for XML。只需遵循简单的步骤,您就可以在 NPP 中很好地格式化 XML。到目前为止,我发现的唯一异常是嵌套的自闭合元素 EG:

<OuterTag>Text for outer element<SelfClosingTag/></OuterTag>

将整理到:

<OuterTag>Text for outer element
<SelfClosingTag/></OuterTag>

可能有一种方法可以解决这个问题,但就目前而言,它设法将我的文档中的行数减少了 300k,并且可以解决这个特定的异常情况。

60赞 Dima 3/3/2013 #3

安装 Tidy2 插件。我有 Notepad++ v6.2.2,到目前为止 Tidy2 工作正常。

评论

6赞 DWils 12/10/2013
我支持这一点,Tidy2 完成了 HTML 标记的工作,并且做得很好。
3赞 Christian Vielma 1/15/2014
我对此表示敬意。XML 工具对我不起作用,也无法使其与 TextFX 一起使用
5赞 Subhashi 2/15/2014
谢谢。。“XML 工具”不适用于某些文件,这就是对我有用的东西。
5赞 trebormf 4/6/2015
注意:当您整理时,某些 HTML 字符实体会替换为其 unicode 字符。这与 Tidy2 配置或文档编码无关。例如,整理前的“&#8217;”在整理后变成“'”(“智能”单引号)。这使得 Tidy2 对我来说无法使用。该项目自2012年以来一直没有更新。
2赞 cori 6/7/2016
没有使用制表符而不是空格进行缩进的选项对我来说是扼杀这一点。
15赞 Vlad Grigorov 4/3/2013 #4

这是我第三次安装 Windows 和 npp,一段时间后我意识到整洁功能不再起作用。所以我在谷歌上搜索解决方案,来到这个线程,然后在更多线程的帮助下,我终于修复了它。我将一劳永逸地总结我的所有行为。

  1. 安装 TextFX 插件:Plugins -> Plugin Manager -> Show Plugin Manager。选择 TextFX Characters 并安装。重新启动 npp 后,菜单“TextFX”应该可见。(学分:@remipod)。

  2. 通过粘贴旧 npp 包中的 Config 文件夹来安装 libtidy.dll:按照此答案中的说明进行操作。

  3. 在最新的 npp 安装目标(通常为 C:\Program Files (x86)\Notepad++\plugins)中有一个 Config 文件夹后,npp 需要对该文件夹的写入权限。右键单击“配置文件夹”->“属性”->“安全”选项卡,>选择“用户”,单击“编辑”->选中“完全控制”以允许读/写访问。请注意,您需要管理员权限才能执行此操作。

  4. 重新启动 npp 并验证 TextFX -> TextFX HTML Tidy -> Tidy: Reindent XML 是否正常工作。

评论

0赞 palswim 4/6/2013
如果您使用的是“allowAppDataPlugins”设置(允许每个用户的插件),您可以通过将步骤 2 中的 tidy 文件夹放在用户插件目录中并跳过步骤 3 来执行此操作。
0赞 Vlad Grigorov 4/6/2013
@palswim:太好了,谢谢!当一个用户使用 npp 时,您的解决方案会更干净。
8赞 Oliver Meyer 1/22/2014 #5

我必须更新插件 ->插件管理器 ->显示插件管理器 -> 设置下的代理设置,才能在“可用”列表中查看任何插件。

之后,安装“XML Tools”很容易,并完成了上述请求的工作。

评论

1赞 GuruM 2/17/2014
使用“XML 工具”,缩进并不像我对 HTML+Javascript 代码所要求的那样。发现“UniversalIndentGUI”插件通过将语言设置为 HTB(HTML、XML、XSL),然后从插件菜单运行“缩进文本”,可以很好地完成这项工作。
36赞 Some Java Guy 12/2/2015 #6

对于那些不知道的人,npp 有很多来自插件和其他项目的支持。您可以从 SourceForge 下载这些插件。

enter image description here

您需要在 n++ 中设置文本格式XML Tools

下载后 ..XML Tools

退出记事本++

转到。。。。已安装的 N++ 文件夹。C:\Program File\Notepad++

  1. 将您下载的 xml 工具中的以下文件放在 npp 根文件夹中copy replace

enter image description here

  1. 转到子文件夹并放置在下载的文件下方..\Plugins

enter image description here

重新启动并享受!!

Ctrl + Alt + Shft + B格式化。

评论

4赞 Owl 5/11/2017
我似乎没有插件管理器 - 我有记事本++ 7.3.3。
12赞 Daksh Agrawal 3/25/2018 #7

不完全是解决方案,而是一种解决方法。

默认情况下,记事本 ++ 不提供任何此类功能。但是您可以使用一些在线工具来自动设置文本格式,例如 https://www.freeformatter.com/xml-formatter.html

评论

3赞 Nigel Alderton 9/4/2018
虽然这个答案是解决方法而不是 OP 问题的解决方案,但它是唯一对我有用的东西。XML Tools 和 Tidy2 都有问题。
1赞 Björn 2/7/2019 #8

我正在使用带有“插件管理”的记事本 7.6,但找不到 XML 工具。
我不得不像 @some-java-guy 在他的回答中所做的那样手动安装它,除了我的 plugins 文件夹位于此处:
在该目录中,我创建了一个新目录(名为 XmlTools)并在那里复制了 XMLTools.dll。(我将所有依赖项复制到 Program 文件中的 Notepad++ 目录。
C:\Users\<my username>\AppData\Local\Notepad++\plugins

评论

0赞 Micah Lindstrom 2/18/2020
在Notepad++ v7.8.4中,“XML工具”在“插件管理”中可用。也许曾经有过不相容之类的。考虑到最新的提交是 2 天前在 github.com/morbac/xmltools 上,它似乎也在积极开发
8赞 Daniel Nyamasyo 3/4/2020 #9

只需安装最新的记事本++并安装缩进折叠即可。在菜单栏上,选择 Plugins -> Plugins Admin 并选择缩进 By fold 并安装。效果最好

评论

1赞 Irfandi D. Vendy 4/20/2020
这应该是现在的接受者答案,因为我无法让 XML 工具或 Tidy2 工作。无论如何,我们可以为这种用法分配快捷方式吗?
0赞 wkille 10/7/2021
Indent By Fold 对我来说效果很好。我似乎没有在空行上找到任何空格(这就是你所说的“空行”@Henke的意思吗?不过我没有自动保存插件。NP++ v8.1.5 和 Indent By Fold v0.7.3。
0赞 Henke 10/8/2021
首先,我现在使用的是 8.1.4(32 位)版本,并且工作完美。(因此,我删除了我对此抱怨的评论之一。其次,这里有一个示例屏幕截图,演示了 的一些问题。因此,我已停止使用它,而是切换到从命令行运行的prettyhtml@starptech,因此不依赖于记事本++或任何其他编辑器。Auto SaveIndent By Fold