AtomにSnippetを追加した

投稿者: | 2020年5月15日

三日坊主にならないようにABCの過去問を埋めています。ABCのA問題とB問題は埋め終わったので、今日からC問題をやっていきます。

さて、問題を埋めるためにコードを書いていると、最初の部分は基本的に同じになります。毎回書くのがめんどくさいので、AtomのSnippetに追加してしまいましょう。

1.Snippetって?

スニペット(英語: snippet)とは、「断片」という意味で、再利用可能なソースコードマシンコード、またはテキストの小さな領域を表すプログラミング用語である。 通常、これらはより大きなプログラミングモジュールに組み込むために正式に定義された操作ユニットである。スニペット管理は、一部のテキストエディタソースコードエディタ統合開発環境、および関連ソフトウェアの機能である。 これにより、ユーザーは日常の編集操作中に繰り返し入力する必要がなくなる。

(wikipedia)

よく使うものを先に作っておいて、それを再利用しまくろうというものらしいです。

2.AtomにSnippetを登録する

バージョンによって異なりますが、メニューバーからAtom→Snippetとクリックすると、snippet.csonが表示されます。

Snippetはコアパッケージになっているので、新しく拡張機能をインストールする必要はありません。

Japanese menueを入れているとどれ?ってなりますが、キーマップとスタイルシートの間にあります。

さて、snippet.csonですが、私の場合は次のようになりました。

'.source.cpp':
  'my cpp header':
    'prefix': 'header'
    'body': """
#include <bits/stdc++.h>
#define rep(i, n) for (int i = 0; i < n; i++)
using namespace std;
using ll = long long;
using P = pair<int,int>;
int main(){
  ${1:/*Code*/}
  return 0;
}
    """

snippet.csonを開くと上に例が示されているので、あとはcsonの記述に従って書けばOKです。

3.Snippet.csonの書き方

 '.source.coffee':
   'Console log':
     'prefix': 'log'
     'body': 'console.log $1'

1行目:なんのファイル上で有効にするかを設定。ここはファイルによって記述する文が決まっています。Atomならば、Autocomplete Providersで確認できます。今回はcppファイルなので、".source.cpp"になります。

2行目:サジェストされたときの候補表示名です。任意の文字列が設定可能です。

3行目:prefixでは呼び出す際の入力文字列を設定します。任意の文字列が設定可能です。

4行目:bodyは展開したいコードを書きます。任意の文字列が可能です。1行だけならば`text`で大丈夫ですが、複数行の場合は```でコードを囲みます。

body内のコードですが、入力したときにカーソルが勝手に飛んでくれると楽という場合があります。その場合、その部分を&{1:text}と書くと実現できます。複数箇所ある場合は、順に数字の部分を1,2,3…という風に記述していきます。

4.おわりに

これで簡単にテンプレートを展開することができるようになりました。超便利。

しかし、最近Atomを弄ってますけど、出てくる記事が3年前とかが多いんですよね。みんなVScodeに移行しちゃったのかな?確かにVScode便利になりましたしね。最近だと、draw.ioがVScode上で動くというツイートを見て度肝を抜かれましたし。

5.参考文献

VSCode の Snippet に競プロ用テンプレを設定する方法

AtomのSnippetの追加方法

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください