2

Ultisnips は初めてです。挿入モードで div [tab] と入力すると、次のようになります。

<div id="name">

</div>

名前にカーソルを合わせます。id の代わりにクラスを使用したくない場合は、バックスペースを押してこれを取得します

<div>

</div>

最初の v にカーソルを置きます。「class」と入力し始めたい場合は、次のようになります。

<diclassv>

</div>

クラスを削除して [esc] li 'class' を押すと、このようになります

<div id=" "class>

</div>

何が起きてる?私は何を間違っていますか?

私が欲しい

<div class="foo">

</div>
4

1 に答える 1

3

少なくとも標準のスニペット定義では、あなたが探していることを行う方法が見つかりません。

以下を配置することで使用を開始できる改良されたスニペットを作成しました~/.vim/UltiSnips/html.snippets(そのファイルの私のバージョンは GitHubから入手できます)。

clearsnippets div
snippet div "XHTML <div>"
<div`!p snip.rv=' id="' if t[1] else ""`${1:name}`!p snip.rv = '"' if t[1] else ""``!p snip.rv=' class="' if t[2] else ""`${2:name}`!p snip.rv = '"' if t[2] else ""`>
   $0
</div>
endsnippet

これにより、デフォルトで と の両方idclass属性が提供され、値が削除されたものは除外されます。

GitHub の UltiSnipsの公式バージョンには、このバージョンのスニペットが含まれるようになりました。

于 2013-07-19T21:59:28.440 に答える