【问题标题】:UltiSnips doesn't automatically reload changes to snippets fileUltiSnips 不会自动重新加载对片段文件的更改
【发布时间】:2018-10-17 02:05:37
【问题描述】:

(在这里记录,因为我在网上找不到好的答案。)

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

【问题讨论】:

    标签: vim ultisnips


    【解决方案1】:

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

    :call UltiSnips#RefreshSnippets()
    

    如果您好奇,我通过输入:call <C-d> 找到了它(顺便说一下,列表很长)。

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

    【讨论】:

    • 刷新sn-ps后运行:YcmRestartServer,YouCompleteMe会显示完成。
    • 如果你使用CoC,刷新sn-ps后可以使用:CocRestart
    【解决方案2】:

    看起来 UltiSnips 重新加载适用于 vim 实例。因此,请确保在您希望更改生效的 vim 实例中打开并保存 sn-ps 文件。

    为了解决这个问题,命令:UltiSnipsEdit 将打开与您的正确文件对应的.snippets 文件。您可以使用以下命令配置 sn-ps 文件的打开方式:

    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"中的示例用法

    请注意,如果您想在不同的 sn-ps 文件中进行更改(例如,您正在处理一个 cpp 文件并且您想为所有 c 添加一个 sn-p文件(并且您的 cpp.sn-ps 文件确实是 extends c)。如果您处于这种情况并且您经常编辑您的 sn-ps,请考虑在选项卡/窗格中保持该 sn-ps 文件打开。

    其他建议/欢迎输入!

    (来自Documentation

    【讨论】:

      【解决方案3】:

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

      :e!
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-28
        • 2019-05-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多