我正在使用neocomplcache以及neosnippet和honza的vim-snippets。它们很棒,只有当我按 Ctrl-k 时,我可以转到下一个参数,但我无法返回上一个参数。
例如,如果我插入'for'代码段并在索引变量上输入错误,但我已按 Ctrl-k ,我搞砸了吗?我必须修改所有参数然后再回来做更换操作吗?或者是否有选择模式的映射,我可以在这种情况下帮助我?目前 Tab 和 S-Tab 不做任何事情。
最后,所有的代码片段都是这样的吗?或neocomplcache只是缺少这个功能(开箱即用,至少)?
答案 0 :(得分:10)
我建议您尝试 UltiSnips 。它比vim-snippets
或neosnippet
更强大,更成熟。例如,由于UltiSnips基于Python,因此它具有很强的可扩展性。关于你的问题:是的,你可以用UltiSnips来回跳。最后,请务必查看截屏视频(在链接中列出),以查看您可以使用它进行的所有精彩内容。
例如,我使用以下配置:
let g:UltiSnipsSnippetsDir = '~/.vim/snippets/'
let g:UltiSnipsSnippetDirectories = ['UltiSnips', 'snippets']
let g:UltiSnipsExpandTrigger = '<C-CR>'
let g:UltiSnipsJumpForwardTrigger = '<A-d>'
let g:UltiSnipsJumpBackwardTrigger = '<A-a>'
注意: ~/.vim/snippets/
是我的自定义代码段目录。
正如我已经提到的,UltiSnips广泛使用Python,因此需要使用Python支持构建Vim。如果您使用的是Windows(尤其是x64),那可能会遇到麻烦,这是我很久以前遇到的问题。为了节省宝贵的时间并避免沮丧,您可以考虑下载我的 Vim for Windows 。提供了x86和x64体系结构,它同时支持Python 2和Python 3。我可以向你保证它很稳定。要正确安装,请按照说明操作。这些版本经常更新。
答案 1 :(得分:2)
原始SnipMate及其fork(vim-snippets实际上应为的插件)都允许您使用<S-Tab>
返回上一个占位符。我相信UltiSnips也是如此。
Neocomplcache不再支持开箱即用的代码段扩展。 AFAIK,您需要另一个名为neosnippet的作者的插件,该插件负责<C-k>
映射。快速查看文档显示没有“反向跳转”映射,功能或命令。您可以在neosnippet的Github页面上创建一个新问题。