问题标签 [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.
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 不执行任何操作时,可能会发生问题。希望有建议或方法来解决这个问题。谢谢你们所有的人。
vim - Ultisnips 中使用参数的可选行
我正在尝试根据参数在片段中插入一些额外的行。我不确定如何设计这样的片段。
vim - 向 ultisnips 添加新文件类型
我正在尝试添加 cuda (.cu) 文件。基本目标是首先使所有 c,cpp 片段可用于 cu 文件,然后添加额外的支持。我测试的第一件事是在 vim 中设置文件类型
set ft:cpp.c
这有效。然后我尝试转到vim-snippets/snippets
并vim-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 可以理解这两种格式?
vim - 为什么 UltiSnips 无法识别我自己的片段?
目前我在 Vim 中使用YouCompleteMe,然后我用 vundler 安装了UltiSnips和vim-snippets。UltiSnips和YouCompleteMe兼容且工作正常;但是,当我定义自己的代码段时,问题就来了,因为这些代码无法识别。
我怀疑问题是在我使用该UltiSnipsEdit
函数时出现的,因为它UltiSnips
在我的主目录中而不是在文件夹中创建文件.vim
夹。例如,当我使用 R 脚本并使用UltiSnipsEdit
. 时,它会r.snippets
在/home/UltiSnips
. 然后我定义了一个片段来测试:
保存文件后,该片段不会出现在YouCompleteMe的列表中,也不会以:UltiSnipsExpandTrigger
(<c-l>
在我的情况下) 展开。
python - 编写一个片段,在最后删除初始变量,只留下修改过的变量
假设我有一个 UltiSnips 片段,它将用下划线替换所有特殊字符。
我有这个:
现在类似的东西Hello world!
变成:
但是,最后,我想只保留第二行并丢弃我最初输入的内容。那可能吗?也许使用post_expand
?
python - Ultisnips python插值片段,从文件名中提取数字
我正在尝试制作一个片段,通过从
application/migrations
.
我自己设法做的是,我的文件名在我输入时被过滤,当只剩下一个匹配项时,在光标位置插入其修订号(始终是文件名的前 14 个字符)。
问题是,当我按 TAB 进行选择时,我还留下了迄今为止我输入的内容来搜索该修订号,这意味着类似这样
的内容remo20160812110447
。
remo
问题是,在这种情况下如何摆脱它!?
注意:示例使用硬编码值,为了便于测试,稍后将替换为# lst = os.listdir('application/migrations')
行。
另外一个额外的好处是20160710171947
在选择时将这些值呈现为人类可读的日期格式,但在点击 TAB 后插入其原始源版本。
javascript - 使用可变默认占位符定义 UltiSnip
我正在使用出色的UltiSnips Vim 插件来帮助改进我的开发工作流程。我已经使用它好几年了,它确实帮助我在编码时自动化了很多多余的输入。
无论如何:我正在尝试定义一个片段来帮助我生成 Javascript 要求语句。
一个普通的 Javascript require 语句看起来像这样:
所以,这是我定义的片段:
这让我可以输入req
Vim,然后它将光标移动到${1}
片段中的位置,以便我可以定义变量名称。一旦我第二次点击,我的光标将移动到${2}
片段中的位置,这样我就可以定义要导入的实际 Javascript 模块名称。
这很好用,但我想做的是更进一步。我想制作一个这样的片段:
当我为 输入一个值时${1}
,该值默认${2}
更新为 的值${1}
。这样,在某些情况下,我可以节省两次键入相同的模块名称。
这个想法是我应该能够做这样的事情:
这样,如果我输入:
我应该得到以下扩展行:
但是,它也应该在这种情况下工作:
这将输出:
那有意义吗?
无论如何:任何帮助将不胜感激!上面的代码示例不像我想象的那样工作。该${2:${1}}
位被忽略并且不能按预期工作(它没有将占位符值设置为${2}
to${1}
)。
python - 在 UltiSnip 中的 python 表达式中添加制表符
我对 UltiSnip doc 给出的示例进行了修改:
其中,与原来的相比,添加一个\label{envname:}
,如果envname
是,proof
那么我们没有添加它。这在我们编写环境时会很有帮助thm
,例如
be lem<tab>
会给
\begin{lem}\label{lem:}
<c-j>
\end{lem}
唯一的缺点是,我不知道如何在位置添加占位符\label{lem:$4}
。任何想法?
r - utltsnips - 用空间环绕
我有以下用于 Vim 的 utilsnips 脚本:
我将它用于 R 以将破折号扩展到赋值运算符。我想让它<-
在扩展之前和之后都放置一个空间。但是,当我在片段之前放一个空格时<-
,它不会在点击时扩展Tab
。我应该如何修改脚本以在运算符周围留出空格?期望的结果:<-
。
vim - vim ultisnips 重新激活 snipet
我是一个 vim/ultisnips 新手,试图在编写和编码时提高效率。我已经成功安装了 ultisnips 插件,到目前为止它可以工作。
我的问题是:是否可以在填充后“重新激活”一个片段?文档说:
UltiSnips 只会在片段处于活动状态时映射跳转触发器,以尽可能少地干扰其他映射。
但实际上我想不时重新激活一个片段,以便在更新/修改片段内容时有效地在占位符之间跳转。
知道如何做到这一点吗?