考虑以下代码:
\usemodule[vim]
\definevimtyping
[somecode]
[numbering=yes,lines=split]
\starttext
\startsomecode
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
\stopsomecode
\stoptext
很明显,代码行(当然不是实际的代码)相当长,但它只有一行。在输出中你会看到:
请注意,引入的行号并不反映源代码中的行号。是否可以在输出中获取“原始”行号?
奖金:如果有选项,是否有人知道如何在换行后缩进文本?
答案1
这段太长了,不适合作为评论,所以我将其作为答案发布。我是当前的维护者t-vim
,也是添加行号功能的人。原则上,这是可能的。2context.vim
脚本将一行转换为以下内容
\SYNBOL ... \SYNEOL
行号的最初实现是重新定义\SYNBOL
在左边距中添加数字。这可行,但没有提供行号环境的任何其他选项(设置数字样式、数字距离、跳过、开始、转换、引用等)。我不想在 中重新实现所有这些功能t-vim
。所以,我最终决定在内置行号环境中使用 piggy-packing,它目前没有选项来指定某些属于同一行的内容实际上被分成两行。
我不打算重写 中的行号处理方式t-vim
。我将检查上下文邮件列表,看是否有可能添加对“如果在同一行则跳过行号”的支持。该代码已经在page-lin.lua
(第 415-422 行) 中,但由于某种原因被注释掉了。