ultisnips:如何"冻结" snippet的vim.current.window.cursor值

时间:2018-04-19 08:03:26

标签: neovim ultisnips

我有一段曾经运作良好的片段(neovim 0.2.0)

snippet #= "comment ===" b
# `!p snip.rv = '=' * (78 - vim.current.window.cursor[1])`
# ${1:comments} 
# `!p snip.rv = '=' * (78 - vim.current.window.cursor[1])`
endsnippet

这个片段基本上是在触发时编写python注释块, 其中" ="的长度取决于光标的位置。

现在几天(我不知道哪个更新使其失败)," ="只要我输入评论就会减少。

看起来vim.current.window.cursor[1]经常被重新评估。

任何想法如何"冻结"价值?

1 个答案:

答案 0 :(得分:0)

我终于找到了:

snippet #= "comment ===" b
`!p
if not snip.c:
    width = int(vim.eval("78 - virtcol('.')"))
snip.rv = '# ' + '=' * width`
# ${1:comments}
`!p snip.rv = '# ' + '=' * width`
endsnippet