在vim中使用UltiSnips自定义自动完成

时间:2015-01-15 11:12:14

标签: python vim ultisnips

我想创建使用Vim complete()函数在每个制表位上自定义完成的片段。这是我想要实现的一个简单例子。

snippet date "Date snippet"
   day of month: ${1:`!v complete(col('.'), [1, 2, 3, 4])`}
   month: ${2:`!v complete(col('.'), ['Jan', 'Feb', 'March'])`}
   year: ${3:`!v complete(col('.'), ['2012', '2013', '2014', '2015'])`}
endsnippet

在第一个标签页上,我想查看带有[1, 2, 3, 4]项目的Vim自动完成菜单。同样适用于其他制表位。但是,当我实际运行此片段时,我得到以下输出

day of month: Jan0an0
month: 201200120
year:100

可能还有其他方法可以实现自动完成功能,如屏幕投射Episode 4: Python Interpolation所示。但是,我很想看到Vim在UltiSnips中自动完成。

请有人建议如何实现这一目标。

1 个答案:

答案 0 :(得分:1)

不幸的是,由于Vim的设计,今天香草Vim + UltiSnips无法实现这一点。一旦neovim解决了交互问题,它可能是可行的。

请参阅https://github.com/SirVer/ultisnips/issues/428