UltiSnips不会自动将更改重新加载到片段文件

时间:2018-06-21 22:56:57

标签: vim ultisnips

(此处记录了此内容,因为我无法在线找到一个好的答案。)

使用UltiSnips时,文档说(2:12 in this screencast)表示,编写.snippets文件足以导致自动重新加载代码段。但是,这对我不起作用。发生什么事了?

3 个答案:

答案 0 :(得分:7)

我本人也有这个问题,因为经常更新我自己的.snippets文件并且不立即提供它们是不愉快的。经过一些实验,我找到了答案:

:call UltiSnips#RefreshSnippets()

如果您感到好奇,可以通过输入:call <C-d>(顺便说一句,很长的列表)来找到它。

但是,此命令不会更新YouCompleteMe的自动完成列表(大多数情况是无关紧要的,但是有时您可能希望浏览选项旁边的描述)。

答案 1 :(得分:1)

看起来UltiSnips重新加载适用于vim实例。因此,请确保在要使更改生效的vim实例中打开并保存代码片段文件。

为解决此问题,命令:UltiSnipsEdit将打开与您的正确文件相对应的.snippets文件。您可以使用以下命令配置摘要文件的打开方式:

g:UltiSnipsEditSplit    Defines how the edit window is opened. Possible
                        values:
                        |normal|         Default. Opens in the current window.
                        |tabdo|          Opens the window in a new tab.
                        |horizontal|     Splits the window horizontally.
                        |vertical|       Splits the window vertically.
                        |context|        Splits the window vertically or
                                         horizontally depending on context.

.vimrc中的示例用法:let g:UltiSnipsEditSplit="context"

请注意,如果您想在其他代码片段文件中进行更改(例如,您正在处理cpp文件,并且想要为所有c文件添加代码段, cpp.snippets文件执行extends c)。如果您处于这种情况下,并且要频繁编辑代码段,请考虑使该代码段文件在选项卡/窗格中保持打开状态。

其他建议/欢迎输入!

(来自Documentation

答案 2 :(得分:0)

我也没有找到令人满意的答案。在有人可以发布更好的内容之前,我建议只使用

:e!

这会将当前窗口重新加载到最近保存的文件。我知道不多,但这是我一直在使用的方式,直到找到更好的方法为止。