帮助我创建一个vim代码段(snipmate)

帮助我创建一个vim代码段(snipmate),vim,code-snippets,snipmate,Vim,Code Snippets,Snipmate,假设我有以下片段: snippet divt <div id="${1:div_id}"> ${2:'some text'} </div> snippetdivt ${2:'some text'} 所以,当我输入divt并点击tab两次时,应该选择“some text”,当我再次点击tab时,我希望选择“some text”(不带单引号)。我怎么做 编辑1:谢谢你的回答。也许这个例子更有意义: snippetdivt 有时我想要一个没

假设我有以下片段:

snippet divt
    <div id="${1:div_id}">
        ${2:'some text'}
    </div>
snippetdivt
${2:'some text'}
所以,当我输入divt并点击tab两次时,应该选择“some text”,当我再次点击tab时,我希望选择“some text”(不带单引号)。我怎么做

编辑1:谢谢你的回答。也许这个例子更有意义:

snippetdivt

有时我想要一个没有id的div,所以我需要能够完全删除id=“div\u id”。有时我希望有一个id,这样我就可以只更改div_id部分。

很遗憾,SnipMate不支持嵌套占位符,但根据@Benoit的建议,您可以在编辑第二个占位符时使用另一个代码段。不过,一定要带一件陀螺

我不确定你想用
一些文本
一些文本
来实现什么-在这个上下文中,地球上的每个html解析器都以完全相同的方式对待这两种文本-但我会用一个简单的

snippet div
    <div id="${1:div_id}">
        ${2}
    </div>

将扩展为(
|
是插入符号)

多亏了DiffractMate或其他类似的插件

'some text'
或者使用环绕来改变

some text|
进入

通过打字

<Esc>v2bS'
用鼠标选择它

v2e
或者类似的东西

S'
要添加引号,请选择带引号的行

V
和类型

S<div id="div_id">
S
取得

<div id="div_id">
    'some text'
</div>

“一些文本”

或者换一种方式做,或者。。。必须有人写一篇博文,介绍在Vim中完成给定任务的所有可能方法。

我目前正在进行一次促销旅行,我正在为此进行维护。对于UltiSnips,执行此操作的代码段如下所示:

snippet divt "div" b
<div ${1:id="${2:div_id}"}>
</div>
endsnippet
片段divt“div”b
尾端片段

UltiSnips还附带了一个用于snipMate片段的转换脚本,因此切换应该很轻松。

我建议您创建两个片段divt和divtq谢谢您的回复。我最近发现了有关UltiSnips的信息。太棒了。
v2e
S'
V
S<div id="div_id">
<div id="div_id">
    'some text'
</div>
snippet divt "div" b
<div ${1:id="${2:div_id}"}>
</div>
endsnippet