如何创建我的自定义vim片段?

Kai*_*ai7 6 vim plugins code-snippets

我想在编写c ++时创建一些片段.
例如:
创建一个文件,cpp.snippets.

priority -1
snippet exam
This is an example!
endsnippet
Run Code Online (Sandbox Code Playgroud)

并把它放在〜/ .vim/my-snippets/snippets /中.
然后,在〜/ .vimrc中添加以下语句:

set runtimepath+=~/.vim/my-snippets/
let g:UltiSnipsSnippetsDir='~/.vim/my-snippets/'
let g:UltiSnipsSnippetDirectories=["snippets"]
Run Code Online (Sandbox Code Playgroud)

但它不起作用,我该如何解决?

Vit*_*tor 13

UltiSnips插件包含详细的文档.您是否阅读了以下帮助页面?

:help UltiSnips-snippet-search-path
Run Code Online (Sandbox Code Playgroud)

更新:

当我阅读帮助部分时显而易见的一件事是,在UltiSnips中,名称"snippets"无法使用,g:UltiSnipsSnippetDirectories因为它是为snipMate兼容的代码段保留的.这不会发生在下面评论中共享的链接中,而是使用名称"my-snippets".

我不使用UltiSnips,但从文档中我建议采用以下方法:

  1. 不要设置g:UltiSnipsSnippetsDir也不g:UltiSnipsSnippetDirectories.
  2. 保持runtimepath+=配置.
  3. 创建以下目录:~/.vim/my-snippets/UltiSnips.
  4. 将个人代码段放在此新目录下.

推理:

  • 默认情况下,UltiSnips会搜索UltiSnips运行时路径下的所有目录,因此如果使用此名称,则不需要进行任何配置.
  • 虽然runtime个人代码段需要该设置,但如果使用插件管理器,则会自动维护此配置.
  • 最后一点允许安装包含片段的vim插件.例如,插件包含snipMate和UltiSnips的各种代码段,包括C++.


小智 8

如果您正在使用sirver/ultisnips插件 (UltiSnips),正确的方法是运行该:UltiSnipsEdit命令,该命令为当前语言/文件类型打开一个自定义片段文件。