问题标签 [ultisnips]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
112 浏览

python - UltiSnips 不起作用:PYTHON 导致 GVim 退出

环境

  • 操作系统:Windows 7,x64 位
  • Vim:来自 vim.org 的 gvim74
  • Python:Python 2.7.11
  • UltiSnips:刚从github下载

很长一段时间以来,Gvim 都非常适合我使用 SnipMate,最近我想改用 UltiSnips。所以我在我的 PC 上新安装了 python,安装了带有 Pathogen 的 UltiSnips,然后删除了 snipmate,希望它能正常工作,但事实并非如此。

问题是:当我打开 gvim 时,一按“i”它就会退出。然后我在安装 UltiSnips 之前恢复了 gvim 并简单地在 gvim 上执行了一个命令,如“python print "Hello"" 或 "python 1" 左右,它什么都不做,只是导致 gvim 立即退出,就像执行的 "q!" 命令。

好的,当 gvim 遇到 python 而对 UltiSnips 不执行任何操作时,可能会发生问题。希望有建议或方法来解决这个问题。谢谢你们所有的人。

0 投票
3 回答
969 浏览

vim - Ultisnips 中使用参数的可选行

我正在尝试根据参数在片段中插入一些额外的行。我不确定如何设计这样的片段。

0 投票
1 回答
1381 浏览

vim - 向 ultisnips 添加新文件类型

我正在尝试添加 cuda (.cu) 文件。基本目标是首先使所有 c,cpp 片段可用于 cu 文件,然后添加额外的支持。我测试的第一件事是在 vim 中设置文件类型

set ft:cpp.c

这有效。然后我尝试转到vim-snippets/snippetsvim-snippets/UltiSnips尝试将 cpp.snippets 文件复制到 cu.snippets。但这不起作用(不像在--未检测到片段--中那样工作--)。我还添加了

在我的 .vimrc 中。即使在此之后它也不起作用。

我还检查了UltiSnipsSnippetDirectories. 它指向Ultisnips

我还尝试创建一个 cu.snippets,它只是试图扩展 cpp(仅此而已)。这也行不通。

作为一个附带问题:据我了解, https ://github.com/honza/vim-snippets有两个带有片段的文件夹。snippets/*对于基于 snipmate 的和基于UltiSnips/*ultisnips 的。但是,该inc片段仅在片段目录中的 c.snippets 上提供(不在 ultisnips 中)。但奇怪inc的是为我处理c文件。我很肯定我没有使用 snipmate。这怎么可能发生?我是不是错过了什么。还是ultisnips 可以理解这两种格式?

0 投票
5 回答
4187 浏览

vim - 为什么 UltiSnips 无法识别我自己的片段?

目前我在 Vim 中使用YouCompleteMe,然后我用 vundler 安装了UltiSnipsvim-snippetsUltiSnipsYouCompleteMe兼容且工作正常;但是,当我定义自己的代码段时,问题就来了,因为这些代码无法识别。

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

保存文件后,该片段不会出现在YouCompleteMe的列表中,也不会以:UltiSnipsExpandTrigger(<c-l>在我的情况下) 展开。

0 投票
1 回答
181 浏览

python - 编写一个片段,在最后删除初始变量,只留下修改过的变量

假设我有一个 UltiSnips 片段,它将用下划线替换所有特殊字符。

我有这个:

现在类似的东西Hello world!变成:

但是,最后,我想只保留第二行并丢弃我最初输入的内容。那可能吗?也许使用post_expand

0 投票
2 回答
1233 浏览

python - Ultisnips python插值片段,从文件名中提取数字

我正在尝试制作一个片段,通过从 application/migrations.

我自己设法做的是,我的文件名在我输入时被过滤,当只剩下一个匹配项时,在光标位置插入其修订号(始终是文件名的前 14 个字符)。

问题是,当我按 TAB 进行选择时,我还留下了迄今为止我输入的内容来搜索该修订号,这意味着类似这样 的内容remo20160812110447

remo问题是,在这种情况下如何摆脱它!?

注意:示例使用硬编码值,为了便于测试,稍后将替换为# lst = os.listdir('application/migrations')行。

另外一个额外的好处是20160710171947在选择时将这些值呈现为人类可读的日期格式,但在点击 TAB 后插入其原始源版本。

0 投票
2 回答
1225 浏览

javascript - 使用可变默认占位符定义 UltiSnip

我正在使用出色的UltiSnips Vim 插件来帮助改进我的开发工作流程。我已经使用它好几年了,它确实帮助我在编码时自动化了很多多余的输入。

无论如何:我正在尝试定义一个片段来帮助我生成 Javascript 要求语句。

一个普通的 Javascript require 语句看起来像这样:

所以,这是我定义的片段:

这让我可以输入reqVim,然后它将光标移动到${1}片段中的位置,以便我可以定义变量名称。一旦我第二次点击,我的光标将移动到${2}片段中的位置,这样我就可以定义要导入的实际 Javascript 模块名称。

这很好用,但我想做的是更进一步。我想制作一个这样的片段:

当我为 输入一个值时${1},该值默认${2}更新为 的值${1}。这样,在某些情况下,我可以节省两次键入相同的模块名称。

这个想法是我应该能够做这样的事情:

这样,如果我输入:

我应该得到以下扩展行:

但是,它也应该在这种情况下工作:

这将输出:

那有意义吗?

无论如何:任何帮助将不胜感激!上面的代码示例不像我想象的那样工作。该${2:${1}}位被忽略并且不能按预期工作(它没有将占位符值设置为${2}to${1})。

0 投票
1 回答
201 浏览

python - 在 UltiSnip 中的 python 表达式中添加制表符

我对 UltiSnip doc 给出的示例进行了修改:

其中,与原来的相比,添加一个\label{envname:},如果envname是,proof那么我们没有添加它。这在我们编写环境时会很有帮助thm,例如

be lem<tab>会给

\begin{lem}\label{lem:} <c-j> \end{lem} 唯一的缺点是,我不知道如何在位置添加占位符\label{lem:$4}。任何想法?

0 投票
1 回答
259 浏览

r - utltsnips - 用空间环绕

我有以下用于 Vim 的 utilsnips 脚本:

我将它用于 R 以将破折号扩展到赋值运算符。我想让它<-在扩展之前和之后都放置一个空间。但是,当我在片段之前放一个空格时<-,它不会在点击时扩展Tab。我应该如何修改脚本以在运算符周围留出空格?期望的结果:<-

0 投票
0 回答
92 浏览

vim - vim ultisnips 重新激活 snipet

我是一个 vim/ultisnips 新手,试图在编写和编码时提高效率。我已经成功安装了 ultisnips 插件,到目前为止它可以工作。

我的问题是:是否可以在填充后“重新激活”一个片段?文档说:

UltiSnips 只会在片段处于活动状态时映射跳转触发器,以尽可能少地干扰其他映射。

但实际上我想不时重新激活一个片段,以便在更新/修改片段内容时有效地在占位符之间跳转。

知道如何做到这一点吗?