LoginSignup
11
8

More than 1 year has passed since last update.

VScodeの2種類のユーザースニペットの違い(ユーザースニペットとグローバルユーザースニペット)

Last updated at Posted at 2020-07-12

結論

VScodeのユーザースニペットには

  • ユーザースニペット
  • グローバルユーザースニペット

の2種類があり、それぞれ挙動が異なる。

詳細

どちらのsnippetも「CのコメントスタイルをサポートするJSON」形式で書かれており、ユーザースニペットをそのままグローバルユーザースニペットに転記しても使えます。

VScodeの英語ページでは
ユーザースニペット→ language snippet
グローバルユーザースニッペト→ global snippet
と表記が分けられていました。

1. ユーザースニペット(language snippet)

特定の言語のスニペットで、例えばJavascript.jsonLaTeX.jsonがこれにあたります。
注意点として VScodeの言語モード(右下のとこに出てるやつ)が一致している時にしか表示されません。

コメント 2020-07-12 224130.png

例えば、LaTeXのユーザースニペットを出したい場合、ここがLaTeXになっている必要があります。

2. グローバルユーザースニペット(global snippet)

複数以上の言語に対応しているsnippetはすべてグローバルユーザースニペット(global snippet)だそうです(上記英語のVScodeのページより)。
これは拡張子が.code-snippetsのファイルになります。
scopeプロパティを追記しない限り、言語モードに関わらず全ての言語のファイルで使用可能です。

以下の例ではPythonファイルを編集中でもCtrl+SpaceでLaTeXのsnippetが出てきています。

globalsnippetex.png

scopeプロパティを"scope": "javascript,html",みたいに書くと任意の言語のファイルでのみsnippetが有効になるようです。

ちなみに

Stack Overflowなんかを見ていると、自分で設定したsnippetを削除するにはsnippetが入っているフォルダーを開いてファイルごと消すのが一般的なようです。他にいい方法があれば教えてください。

11
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
8