如何在MS Word中显示代码片段并保留格式和语法高亮?

2689

有没有一种方法可以在Microsoft Word文档中显示代码并保留着色和格式? 最好,该方法也应该不显眼且易于更新。

我尝试将代码作为普通文本包含在内,但效果很差,编辑常规文本时会妨碍。 我还尝试将对象插入文档中,如WordPad文档和文本框,然后将代码放入这些对象中。 代码看起来更好,并且在编辑其余文本时更容易避免。 但是,这些对象只能跨越一页,当需要添加多页代码时,编辑变成了恶梦。

最后,我知道还有更好的编辑器/格式可以轻松处理此问题,但我被困在使用MS Word。


我采用了混合解决方案。将带有RTF格式的内容复制到OpenOffice Writer中,删除背景(如果有的话),然后将代码粘贴到MS Word中。不知何故,我无法在Word中删除背景 :-(无论如何,在PhpStorm、WebStorm和PyCharm中使用“Copy on steroids”插件来完成此操作非常棒! - chjortlund
10
从Office 365开始,我不知道是不是甚至适用于Word 2013或2016。它有一个名为“代码格式”的在线插件。安装该Office插件,然后在您的Word文档中,您只需选择所有代码(甚至多个页面),并从“代码格式”插件中单击转换按��,即可将其转换为带有行号的格式化彩色代码。但我找不到无行号格式化的选项!但还是不错的! - Rahul Saini
除了特定的插件能够专门用于格式化代码之外,最好的解决方案是使用样式或者图片。 样式适用于格式化。我过去常常使用从 Star Office 到 Libre Office 的许多分支,但今天我开始使用 Word,发现只需探索样式配置就可以完成格式化。 只需使用 Notepad++ 导出 RTF,然后使用样式即可。 我所做的一些事情包括添加边框、我喜欢的背景颜色、勾选“同一样式之间不要添加间距”或类似选项(我使用的是法语界面,所以我不知道确切的英文标题),以及其他任何你喜欢的内容。 - 猫IT
另外,Easy Code Formatter不再起作用了。 - westr
https://syntax-highlighter.k26.ch/ 这个网站非常好用! - Nicicalu
显示剩余2条评论
45个回答

24

我发现最好的方法是使用表格。

创建一个1x1的表格,然后将代码复制并粘贴。
如果您使用的是桌面应用程序,则它将继承代码编辑器主题颜色并相应地粘贴,否则您可以将表格样式更改为任何颜色。

输入图像描述

更新 ------------------

从Word 2021开始,您可以直接粘贴代码,并且它将保留格式。无需创建表格。
感谢@RdC1965提到这一点。


这不会复制 VBA 中的颜色。可以适用于其他编程语言。 - Charles Kenyon
从未尝试过VBA。但这取决于IDE主题。尝试更改主题,然后粘贴它。 - Shubham Chadokar
1
是的。非常感谢你! 只需创建一个1x1的表格,从VSCode中复制代码即可。完成! - Dung Nguyen
1
至少在Word 2021中,您只需要从VS Code复制并粘贴到Word中即可。您不需要使用1x1表格。 - RdC1965

23
如果您像我一样懒惰或者匆忙,不想下载额外的软件,您可以使用 http://markup.su/highlighter/。它非常简单易用,支持多种高亮主题和许多编程语言。http://markup.su/highlighter/在我的情况下,我正在使用 Visual Studio Code,由于涉及到样式的CSS,它不允许带格式复制(如此报道here)。
从预览框中复制文本,然后在Word中转到“插入”-> “文本框”,将预览从网站中粘贴进去,突出显示所有文本,然后disable spell checking for that textbox
这是最终代码的样子。在Word中看到的代码

有没有办法改变字体大小?我的代码非常长,我想在 Word 中将其放在几页中。更改 Word 中的字体大小没有帮助。 - dark32
你是否在更改字体大小之前没有突出显示文本框中的文本? - maaw
它可以改变字体大小,但对行间距没有影响。 - dark32
1
如果我正确理解了您的问题,@dark32,您需要更改行距:https://support.office.com/zh-cn/article/word-中更改文本行间距-d2fde9b0-4d7e-4afe-bc37-1c721beeb31e - maaw
2
这个一周前还很好用,但是自从2017年12月7日起,网站http://markup.su/highlighter/就再也无法使用了。希望它能尽快恢复。 - Gorgon_Union
5
链接又失效了...提前告知一下。 - Zombie Chibi XD

13

Vim 具有一个巧妙的功能,可以将代码转换为 HTML 格式并保留语法高亮、字体样式、背景颜色甚至是行号。运行 :TOhtml 命令,vim 将创建一个包含 html 标记的新缓冲区。

然后,在 Web 浏览器中打开此 html 文件,并将其呈现的内容复制/粘贴到 Word 中。Vim 技巧 wiki 提供了更多信息


13

这个方法有些绕,但非常有效。下载安装Windows Live Writer,并安装这个插件:代码片段插件

使用该插件将代码插入博客文章中,全选并复制到Word。

这样做能使代码看起来很棒,包括行号,也可以跨页显示。

希望对您有所帮助。

Colby Africa


需要在Windows Live、WordPress或其他10个博客平台上注册账户。 - mirelon

11

11

您可以在任何办公程序中使用此插件。

前往插入选项卡,然后点击获取插件,并搜索Easy Syntax Highlighter

它支持:

  • 185种语言和89种主题。

  • 自动语言检测。

  • 多语言代码高亮。


这在 MS Word 在线版中也适用。非常感谢。 - Rishab
不用谢。 - Marawan Mamdouh
警告(不仅仅浪费时间)请求您的电话号码和其他个人信息,然后将您发送到一个损坏的链接。 - Rob Hoff
跳过链接,直接进入您使用的办公程序中的“插入”选项卡,然后单击“获取加载项”,搜索“Easy Syntax Highlighter”并添加即可。@RobHoff - Marawan Mamdouh
这更像是个麻烦而不是资产。赶紧移除它! - Kumar Ashutosh
这更像是个麻烦而不是资产。干脆把它移除掉! - undefined

11

根据我的经验,从Eclipse和Notepad++复制黏贴到Word中是直接可行的。

但有时候会出现一个问题,就是文件没有保留语法高亮显示。我会新建一个.java文件,把代码复制粘贴进去,再复制粘贴到Word中解决这个问题...

像其他人说的那样,可以创建一个新的段落样式。我通常使用等宽字体(如Courier New),字号较小,接近8px,单倍行距,段落之间无空格,制表位设置小一点(0.5cm、1cm等等,一直到5cm),在文本周围加上简单的线框,并禁用语法检查。这样我就可以获得与Eclipse相同的行折行效果,而不需要做其他任何处理。

希望我的回答对你有所帮助;)


10

你可以使用VS Code来保持代码的格式和高亮。 直接从VS中复制并粘贴代码。在这里输入图片描述


我发现这是针对这个问题最聪明的答案。谢谢! - Anup Bangale

9

2019年解决此问题的答案:

现在,大多数回答这个问题的方法已经过时。我希望有一种方法可以时不时地重新检查旧的问题和答案!

我发现与Office 365及其相关程序配合使用的此问题解决方法可以在这里找到。


我认为建议在回答文本中添加链接说明,以防链接最终失效。 https://meta.stackexchange.com/a/8259 - Chintan Pathak

8
使用像Windows自带的Lucida Console这样的等宽字体。如果您从Visual Studio或支持语法高亮的其他软件中复制/粘贴,通常可以保留语法高亮器的颜色方案。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接