Pygments
Command Line Interface
« Back To IndexYou can use Pygments from the shell, provided you installed the pygmentize script:
$ pygmentize test.py print "Hello World"
will print the file test.py to standard output, using the Python lexer (inferred from the file name extension) and the terminal formatter (because you didn't give an explicit formatter name).
If you want HTML output:
$ pygmentize -f html -l python -o test.html test.py
As you can see, the -l option explicitly selects a lexer. As seen above, if you give an input file name and it has an extension that Pygments recognizes, you can omit this option.
The -o option gives an output file name. If it is not given, output is written to stdout.
The -f option selects a formatter (as with -l, it can also be omitted if an output file name is given and has a supported extension). If no output file name is given and -f is omitted, the TerminalFormatter is used.
The above command could therefore also be given as:
$ pygmentize -o test.html test.py
Lexer and formatter options can be given using the -O option:
$ pygmentize -f html -O style=colorful,linenos=1 -l python test.py
Be sure to enclose the option string in quotes if it contains any special shell characters, such as spaces or expansion wildcards like *.
There's a special -S option for generating style definitions. Usage is as follows:
$ pygmentize -f html -S colorful -a .syntax
generates a CSS style sheet (because you selected the HTML formatter) for the "colorful" style prepending a ".syntax" selector to all style rules.
For an explanation what -a means for a particular formatter, look for the arg argument for the formatter's get_style_defs() method.
The -L option lists all lexers and formatters, along with their short names and supported file name extensions.