![ConTeXt:使用 t-vim 内联代码高亮](https://linux22.com/image/337631/ConTeXt%EF%BC%9A%E4%BD%BF%E7%94%A8%20t-vim%20%E5%86%85%E8%81%94%E4%BB%A3%E7%A0%81%E9%AB%98%E4%BA%AE.png)
我正在尝试在 ConTeXt 文档中插入代码,因此我尝试使用 vimtyping 模块。它适用于文本块,但不适用于内联文本,因为它会生成新行。这是我的 MWE:
\setuppapersize[A5][A5]
\usemodule[vim]
\definevimtyping[python][
syntax=python,
strip=yes,
tab=4,
margin=2em,
before={\blank[samepage,line]},
after={\blank[line]},
]
\starttext
The block works
\startpython
def function(foo): # test
a = foo
return(foo**a)
\stoppython
But the inline writing of \inlinepython{def function} makes new lines.
\stoptext
是否有一个选项我需要激活才能使用此模块内联宏?
答案1
您可以使用spacebefore
和spaceafter
键来设置空间。
这不是一个错误,而是由于默认配置错误造成的。只有当您使用...时,才会使用before
和值;当您使用 时,才会使用和键。after
\start<vim-typing>
\stop<vim-typing>
\inline<vim-typing>
left
right
但是,在中t-filter
,我已经定义:
\c!left=\externalfilterparameter\c!before,
\c!right=\externalfilterparameter\c!after,
left
因此,和的默认值与和 的默认值right
相同。因此,为了避免错误行为,请添加:before
after
\definevimtyping[python]
[
...,
left=,
right=,
]
因此left
和right
键被设置为空。
注意:实际上,我已经修复了这个错误一会儿回来,但是 modules.contextgarden.net 已关闭;所以我无法更新发行版中的模块。