1

次のスニペットがあるとしましょう。

snippet divt
    <div id="${1:div_id}">
        ${2:'some text'}
    </div>

したがって、divtと入力してTabキーを2回押すと、「'some text'」が選択され、もう一度Tabキーを押すと、 "some text"が選択されます(一重引用符なし)。どうすればいいですか?

編集1:あなたの答えをありがとう。おそらく、この例の方が理にかなっています。

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

IDのないdivが必要な場合があるため、id="div_id"を完全に削除できるようにする必要があります。div_id部分のみを変更できるように、IDが必要な場合があります。

4

2 に答える 2

1

残念ながら、SnipMateはネストされたプレースホルダーをサポートしていませんが、@ Benoitのアドバイスに従って、2番目のプレースホルダーを編集するときに別のスニペットを使用できます。ただし、こまは必ず持参してください。

some textvsで何を達成したいかはわかりませんが'some text'、このコンテキストでは、地球上のすべてのhtmlパーサーによってまったく同じように扱われますが、単純な方法でそれを達成できます。

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

どちらかを入力するだけです

some text

また

'

|これは(カレットです)に拡張されます

'|'

delimitMateまたは他の同様のプラグインに感謝します

'some text'

または多分サラウンドを使用して変更します

some text|

の中へ

'some text'

入力して

<Esc>v2bS'

サラウンドを使用すると、

some text

でそれを選択

v2e

または類似したものとタイプ

S'

引用符を追加するには、次の行を選択します

V

とタイプ

S<div id="div_id">

取得する

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

または他の方法でそれを行うか...誰かがVimで特定のタスクを達成するためのすべての可能な方法でブログ投稿を書かなければなりません。

于 2011-06-01T16:10:19.663 に答える
1

私は現在、私がメンテナンスしているUltiSnipsのプロモーション旅行に参加しています。UltiSnipsの場合、これを正確に実行するスニペットは次のようになります。

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

UltiSnipsには、snipMateスニペット用のコンバータースクリプトも付属しているため、切り替えは簡単です。

于 2011-07-27T05:40:58.693 に答える