在 vim 中使用 UltiSnips 自定义自动完成
Custom auto-complete with UltiSnips in vim
我想使用 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
在第一个制表位,我想看到 Vim 的自动完成菜单,其中包含 [1, 2, 3, 4]
个项目。与其他制表位类似。但是,当我实际上 运行 这个片段时,我得到以下输出
day of month: Jan0an0
month: 201200120
year:100
可能还有其他方法可以实现自动完成,如截屏所示 Episode 4: Python Interpolation。但是,我很想看到 Vim 在 UltiSnips 中自动完成。
请任何人就如何实现这一目标提出建议。
不幸的是,由于 Vim 的设计,这在今天的香草 Vim+UltiSnips 中无法实现。一旦 neovim 修复了交互问题,它可能是可行的。
我想使用 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
在第一个制表位,我想看到 Vim 的自动完成菜单,其中包含 [1, 2, 3, 4]
个项目。与其他制表位类似。但是,当我实际上 运行 这个片段时,我得到以下输出
day of month: Jan0an0
month: 201200120
year:100
可能还有其他方法可以实现自动完成,如截屏所示 Episode 4: Python Interpolation。但是,我很想看到 Vim 在 UltiSnips 中自动完成。
请任何人就如何实现这一目标提出建议。
不幸的是,由于 Vim 的设计,这在今天的香草 Vim+UltiSnips 中无法实现。一旦 neovim 修复了交互问题,它可能是可行的。