3

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

例如,如果我插入 'for' 片段并在索引变量上打错字,但我已经按下Ctrl-k,我搞砸了吗?我必须修改所有参数然后再回来进行替换操作吗?或者在这种情况下我可以帮助我选择模式的映射吗?目前TabS-Tab没有做任何事情。

最后,所有的片段插件都是这样的吗?还是 neocomplcache 只是缺少此功能(至少是开箱即用的)?

4

2 回答 2

10

我鼓励您尝试UltiSnips。它比vim-snippetsor更加强大和成熟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。我可以向你保证,它是稳定的。要正确安装,只需按照说明进行操作。这些构建经常更新。

于 2013-04-12T22:51:50.630 回答
2

最初的SnipMate和它的forkvim-snippets的插件)都允许你使用<S-Tab>. 我相信 UltiSnips 也是如此。

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

于 2013-04-13T06:58:30.453 回答