1

我有一个曾经运行良好的片段(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]在不断地重新评估。

知道如何“冻结”价值吗?

4

1 回答 1

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
于 2018-04-23T13:58:49.243 回答