用 ConTeXt 排版语法高亮的代码

garfileo

ConTeXt 社区有一个 t-vim 模块,它能够将 vim 编辑器中的代码语法高亮结果转化为 ConTeXt 排版语句。这意味着,凭借 vim 与 t-vim,顿时可让 ConTeXt 在这方面鸟枪换炮。因为 ConTeXt 内置的语法高亮功能目前太孱弱了,即使是嵌入了 Lua 解释器的 MkIV,也需要用户自行去写语法解析脚本。既然有 vim 所提供的 500 多种语法高亮配置,何必再在 ConTeXt 中重新发明轮子呢?所以,应该安装 t-vim 模块。

安装 t-vim 模块的方法非常简单,即:

$ first-setup.sh --modules="t-filter,t-vim"

如果不懂我在说什么,但是又想知道我在说什么,那么应该阅读『睦邻友好的 ConTeXt Standalone』。

当然,你的系统中必须实现安装了 vim。如果不知道 vim 是什么,可能你不是程序猿吧?我纳闷,为啥没有 emacs 爱好者为 ConTeXt 写一个 t-emacs 模块呢?

t-vim 模块的基本用法见下面的示例:

\usemodule[vim]
\definevimtyping[C][syntax=c]
\definevimtyping[python][syntax=python]

\starttext

\startC
#include <stdio.h>

int main(void)
{
        printf("Hello World!\n");
        
        return 0;
}
\stopC

\blank\hrule\blank

\startpython
def m_tex_name(m):
    m_string="\def\Male{"
    if len(m)==2:
        m_string += "\def\Male{%s\\\ \quad\\\%s\\\\"%(m[0],m[1])
    else:
        for w in m:
            m_string += "%s\\\\"%(w)
    m_string += "\;\\\先\\\生}\n"
    return m_string
\stoppython

\stoptext

在我这里得到的结果为:

t-vim-语法高亮

有关 t-vim 的更多用法,请参考 vim.txt 文件。在开启了 ConTeXt MkIV 运行环境后,可使用 luatools 命令搜索 vim.txt 的路径:

$ luatools vim.txt
阅读 3k

5.5k 声望
1.2k 粉丝
0 条评论
你知道吗?

5.5k 声望
1.2k 粉丝
宣传栏