问题描述
我想使用vim命令定义一个python函数,这样当我的光标位于两个math
字之间时,如下所示:
math A = [cursor]B+C math
python函数给出True,否则给出false。
此功能允许定义Ultisnips上下文,这是vim中片段的插件。
我从his回购中复制了此类功能的(著名的)示例,但我不太了解。 如果可能有帮助,我在这里添加它:
global !p
texmathzones = ['texmathzone'+x for x in ['a','as','b','bs','c','cs','d','ds','e','es','f','fs','g','gs','h','hs','i','is','j','js','k','ks','l','ls','v','w','x','y','z']]
texignoremathzones = ['texmathtext']
texmathzoneids = vim.eval('map('+str(texmathzones)+",'hlid(v:val)')")
texignoremathzoneids = vim.eval('map('+str(texignoremathzones)+",'hlid(v:val)')")
ignore = texignoremathzoneids[0]
def math():
synstackids = vim.eval("synstack(line('.'),col('.') - (col('.')>=2 ? 1 : 0))")
try:
first = next(i for i in reversed(synstackids) if i in texignoremathzoneids or i in texmathzoneids)
return first != ignore
except stopiteration:
return false
endglobal
此函数在与Ultisnips插件关联的.snippets文件中定义,如果我的光标位于$
或类似LaTeX数学构造之间,则该函数为1。
我想也许修改此功能会有所帮助?还是可以创建一个自定义的文本对象来实现这一目标?
我确实了解python,但不了解vim脚本。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)