首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么UltiSnips不识别我自己的片段?

为什么UltiSnips不识别我自己的片段?
EN

Stack Overflow用户
提问于 2016-05-29 14:28:10
回答 5查看 4.8K关注 0票数 2

目前,我在Vim中使用YouCompleteMe,然后在vundler中安装了UltiSnipsvim-snippetsUltiSnipsYouCompleteMe兼容并正常工作;但是,当我定义自己的代码段时,问题就出现了,因为它们是不被识别的。

我怀疑当我使用UltiSnipsEdit函数时会出现问题,因为它在我的主目录中而不是在.vim文件夹中创建了UltiSnips文件夹。例如,当我使用R脚本并使用UltiSnipsEdit时,它在/home/UltiSnips中创建r.snippets文件。然后我定义了一个片段来测试:

代码语言:javascript
复制
snippet test "Testing snip for R." 
# snipp is working
endsnippet

保存文件后,代码片段不会在YouCompleteMe列表中追加,也不会用:UltiSnipsExpandTrigger展开(在我的例子中是<c-l>)。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2016-05-29 20:09:59

let g:UltiSnipsSnippetDirectories=[$HOME.'/.vim/UltiSnips']添加到.vimrc文件使其工作。

票数 6
EN

Stack Overflow用户

发布于 2017-04-14 19:50:20

我是一个新手UltiSnipes用户,我也遇到了同样的问题。它被记录在正式文档中(参见这里和搜索UltiSnips-代码片段-搜索路径)。

为了给您提供一个简短实用的解决方案,我自己的代码片段文件夹是~/..vim/myUltiSnips,我在.vimrc中添加了以下行

代码语言:javascript
复制
let g:UltiSnipsSnippetsDir="~/.vim/myUltiSnips"
let g:UltiSnipsSnippetDirectories = ['myUltiSnips']

因此(在第一行中),您使用绝对路径声明代码段dir,然后(在第二行)将其添加到UltiSnips搜索的dir中,但这次使用的是相对于Vim的运行时路径的路径。

NOTA --我的配置适合我,但是,我不使用病毒片段

来自官方文件:

片段定义文件存储在片段目录中。代码段目录必须是在“运行时路径”选项中定义的目录的子目录。 g:UltiSnipsSnippetsDir定义的目录私有片段定义文件存储在。 g:UltiSnipsSnippetDirectories定义了查找代码片段的目录。不要将此变量与前一个变量混在一起。

票数 5
EN

Stack Overflow用户

发布于 2016-08-21 19:31:53

让我们假设您必须使用目录:

  • ~/..vim/snips:用于您自己的代码段
  • ~/.vim/bundle/vim-片断/UltiSnips/:用于vim-片断

其中涉及两个变量:

  • g:UltiSnipsSnippetsDir :您自己的代码片段的目录
  • g:UltiSnipsSnippetDirectories :用于片段的目录列表

如果不在.vimrc g中定义这些变量,则UltiSnipsSnippetDirectories将被设置为UltiSnips (没有路径)。显然,只列出最终目录的名称就足够了,而不是完整的路径。

代码语言:javascript
复制
let g:UltiSnipsSnippetsDir="~/.vim/snips"
let g:UltiSnipsSnippetDirectories=["snips", "UltiSnips"]
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37511063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档