vim中的代码片段 - 返回上一个参数的任何选项?

时间:2013-04-12 22:12:01

标签: vim parameters code-snippets vim-plugin

我正在使用neocomplcache以及neosnippet和honza的vim-snippets。它们很棒,只有当我按 Ctrl-k 时,我可以转到下一个参数,但我无法返回上一个参数。

例如,如果我插入'for'代码段并在索引变量上输入错误,但我已按 Ctrl-k ,我搞砸了吗?我必须修改所有参数然后再回来做更换操作吗?或者是否有选择模式的映射,我可以在这种情况下帮助我?目前 Tab S-Tab 不做任何事情。

最后,所有的代码片段都是这样的吗?或neocomplcache只是缺少这个功能(开箱即用,至少)?

2 个答案:

答案 0 :(得分:10)

我建议您尝试 UltiSnips 。它比vim-snippetsneosnippet更强大,更成熟。例如,由于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及其forkvim-snippets实际上应为的插件)都允许您使用<S-Tab>返回上一个占位符。我相信UltiSnips也是如此。

Neocomplcache不再支持开箱即用的代码段扩展。 AFAIK,您需要另一个名为neosnippet的作者的插件,该插件负责<C-k>映射。快速查看文档显示没有“反向跳转”映射,功能或命令。您可以在neosnippet的Github页面上创建一个新问题。