これは Python 補間を使用する UltiSnips スニペットです。このスクリーンキャストで見つけました: UltiSnips Screencasts
snippet uuid "UUID" !b
`!p import uuid
if not snip.c:
snip.rv = uuid.uuid4().hex`
endsnippet
b
Snippet オプションの機能を理解しています。このb
オプションは、スニペットを独自の行でのみ展開する必要があることを UltiSnips に伝えます (行の先頭で、その前に 0 個以上の空白文字のみを含む)。しかし、ドキュメント:h UltiSnips-snippet-options
には言及されていません!b
。強打記号!
は UltiSnips オプションをどのように変更しますか?
UUID スニペットには別の問題もあります。オプションを使用するかどうかに関係なくb
、!b
スニペットはuuid
トリガー ワードを使用して任意の場所に展開できます。唯一の違いは、b
および!b
オプションを使用すると、スニペットが行の先頭で展開されると、ダッシュなしの UUID が生成される (例: cafa8555ce1c4501b49a22c83d451046
) ことですが、単語の後に展開されると、ダッシュ付きの UUID が生成されます。 (例: 4c372afe-db90-445d-a5d8-c534f90d5d34
)。オプションをまったく使用しないと、スニペットが展開される場所に関係なく、常にダッシュなしの UUID が生成されます (例: cafa8555ce1c4501b49a22c83d451046
)。なぜこのような食い違いがあるのでしょうか。バグですか?