Pygments命令行工具完全指南:代码高亮利器详解

Pygments命令行工具完全指南:代码高亮利器详解

【免费下载链接】pygments Pygments is a generic syntax highlighter written in Python 【免费下载链接】pygments 项目地址: https://gitcode.com/gh_mirrors/py/pygments

什么是Pygments命令行工具

Pygments是一个强大的语法高亮工具,而pygmentize则是其提供的命令行接口。通过这个工具,开发者可以直接在终端或脚本中对代码文件进行高亮处理,支持输出到终端、生成HTML文件等多种格式。

基础使用方法

最简单的使用方式是直接对代码文件进行高亮输出:

pygmentize test.py

这个命令会自动:

  1. 根据文件扩展名(.py)识别为Python代码
  2. 使用终端格式化器输出彩色结果

对于需要生成HTML的情况:

pygmentize -f html -l python -o test.html test.py

参数说明:

  • -f 指定输出格式(html)
  • -l 指定语言(可省略,自动识别)
  • -o 指定输出文件

终端颜色支持

Pygments能智能检测终端支持的颜色数量:

  1. 首先检查COLORTERM环境变量
    • 若为truecolor24bit则使用1600万色模式
  2. 然后检查TERM环境变量
    • 若包含256则使用256色模式
  3. 最后回退到16色模式

Windows用户注意:如需彩色输出支持,需安装额外组件:

pip install pygments[windows-terminal]

高级输出选项

生成带行号和完整样式的HTML文档:

pygmentize -O full,style=emacs,linenos=1 -o test.html test.py

其中-O参数可设置多个选项,用逗号分隔:

  • full 生成完整HTML文档
  • style=emacs 使用emacs配色风格
  • linenos=1 显示行号

对于包含特殊字符的选项值,建议使用引号包裹:

pygmentize -O "style=monokai,linenos=1" -l python test.py

样式表生成

单独生成CSS样式表:

pygmentize -f html -S colorful -a .syntax

参数说明:

  • -S 指定样式名称
  • -a 为所有CSS规则添加前缀选择器

语言识别功能

Pygments提供多种语言识别方式:

  1. 根据文件名识别:
pygmentize -N setup.py  # 输出: python
  1. 根据内容识别:
pygmentize -C < input_file
  1. 自动猜测(不太可靠):
pygmentize -g unknown_file

流式处理

对于持续输出的内容(如日志),可使用流式处理模式:

tail -f sql.log | pygmentize -s -l sql

-s参数表示逐行处理输入,直到EOF。

自定义扩展

Pygments支持加载自定义的词法分析器和格式化器:

pygmentize -l your_lexer.py -f your_formatter.py -x

-x参数启用自定义扩展功能,文件中的类名应为CustomLexer或CustomFormatter,也可通过冒号指定类名:

pygmentize -l your_lexer.py:SomeLexer -x

帮助系统

  1. 列出所有支持的组件:
pygmentize -L
  1. 查看特定组件信息:
pygmentize -L filters  # 只列出过滤器
pygmentize -H formatter html  # HTML格式化器详细帮助
pygmentize -H lexer python  # Python词法分析器详细帮助
  1. JSON格式输出(2.11+):
pygmentize -L styles --json

编码处理

Pygments提供灵活的编码处理机制:

  1. 设置统一编码:
pygmentize -O encoding=utf-8 ...
  1. 分别设置输入输出编码:
pygmentize -O inencoding=gbk,outencoding=utf-8 ...

默认编码策略:

  • 优先使用终端编码
  • 其次使用系统本地编码
  • 最后回退到latin1

实用技巧

  1. 批量处理文件:
for f in *.py; do pygmentize -f html -l python -o "${f%.py}.html" "$f"; done
  1. 在网页中嵌入高亮代码(使用div包裹):
pygmentize -O cssclass=code-block -f html -l python test.py
  1. 使用不同主题预览效果:
pygmentize -L styles | awk '{print $1}' | xargs -I{} pygmentize -O style={} -f html -l python -o {}.html test.py

通过掌握这些命令和技巧,你可以充分利用Pygments的强大功能,无论是日常开发中的代码查看,还是文档生成中的代码高亮需求,都能得心应手地处理。

【免费下载链接】pygments Pygments is a generic syntax highlighter written in Python 【免费下载链接】pygments 项目地址: https://gitcode.com/gh_mirrors/py/pygments

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值