python - vim ultisnips 如何配置,安装后发现不能正常补全。
高洛峰
高洛峰 2017-04-17 13:12:31
[Python讨论组]

ultisnips 安装使用的 是Vundle

Plugin 'SirVer/ultisnips'
Plugin 'honza/vim-snippets'

下面是我的配置

let g:UltiSnipsExpandTrigger = "<c-j>"
let g:UltiSnipsJumpForwardTrigger = "<c-b>"
let g:UltiSnipsJumpBackwardTrigger="<c-z>"

但是使用时却不能根据文件自动补全

.vim 目录结构为

├── bundle
│   ├── Emmet.vim
│   ├── Vundle.vim
│   ├── ultisnips
│   │   ├── COPYING.txt
│   │   ├── ChangeLog
│   │   ├── README.md
│   │   ├── UltiSnips
│   │   ├── ...
│   │   ├── syntax
│   │   └── utils
│   └── vim-snippets
│       ├── LICENSE
│       ├── ...
│       ├── UltiSnips
│       └── snippets

谢谢

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(2)
天蓬老师

这个插件很简单,给你看我的设置好了:

NeoBundle 'SirVer/ultisnips'
let g:UltiSnipsSnippetDirectories=['UltiSnips']
let g:UltiSnipsSnippetsDir = '~/.vim/UltiSnips'
let g:UltiSnipsExpandTrigger = '<Tab>'
let g:UltiSnipsListSnippets = '<C-Tab>'
let g:UltiSnipsJumpForwardTrigger = '<Tab>'
let g:UltiSnipsJumpBackwardTrigger = '<S-Tab>'

哦,对了,我想起来一件事情。g:UltiSnipsSnippetDirectories 选项的值必须是文件夹名称(可以是多个),并且这个(些)文件夹必须存在于 runtimepath 中的某一项之下。比如说 ~/.vim 就是 runtimepath 中的一项。默认的文件夹 UltiSnips 会自动创建,如果你换了,那你必须保证这个文件夹是存在的。我看你换成了 snippets,如果你事先安装过 SnipMate,那么 snippets 才会存在,否则你得自行创建。g:UltiSnipsSnippetDirectories 选项的作用是指定 UltiSnips 的搜索路径,你找不到 snippets 的原因大概就是这样。

解释为什么错了真的很累,换个角度告诉你,如果你做对了是什么样子的:

  1. let g:UltiSnipsSnippetsDir = '~/.vim/UltiSnips' 这个设置会确保 snippets 都在指定的文件夹内(你自己编辑的也会保存在这里,如果你用了第三方的并且还要进一步编辑,你得确保都复制到了这里)

  2. let g:UltiSnipsSnippetDirectories = ['UltiSnips'] 这个设置会告诉 UltiSnips 去哪儿找 snippets,可以是多个地方,所以如果你用第三方的 snippets,和上一个设置不在一起的话,你得把它们的路径放这里。要注意的是,这个数组里的每一项都必须在 runtimepath 其中的一项之下,所以不确定的话,先看看 runtimepath 的值。

  3. 若上述两点都做对了,那么在任意类型文件打开的前提下输入 :UltiSnipsEdit 都会打开对应类型的 snippets,能不能用,哪些能用,一看便知。

怪我咯

有可能是因为你编译 vim 时同时开启了 python2 和 python3 的支持,在 .vimrc 设置一下插件SirVer/ultisnips 使用的 python 版本即可。

let g:UltiSnipsUsePythonVersion = 2
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号