三日坊主にならないようにABCの過去問を埋めています。ABCのA問題とB問題は埋め終わったので、今日からC問題をやっていきます。
さて、問題を埋めるためにコードを書いていると、最初の部分は基本的に同じになります。毎回書くのがめんどくさいので、AtomのSnippetに追加してしまいましょう。
目次
1.Snippetって?
スニペット(英語: snippet)とは、「断片」という意味で、再利用可能なソースコード、マシンコード、またはテキストの小さな領域を表すプログラミング用語である。 通常、これらはより大きなプログラミングモジュールに組み込むために正式に定義された操作ユニットである。スニペット管理は、一部のテキストエディタ、ソースコードエディタ、統合開発環境、および関連ソフトウェアの機能である。 これにより、ユーザーは日常の編集操作中に繰り返し入力する必要がなくなる。
よく使うものを先に作っておいて、それを再利用しまくろうというものらしいです。
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上で動くというツイートを見て度肝を抜かれましたし。
VS Codeでhttps://t.co/s8c2zgSWEy使えるようになったらしい!!
すごい!!!!!https://t.co/F83EwcAp3Q pic.twitter.com/m6BG2bnRiW— なるちゃん / ITエンジニア (@naruse_anon) May 13, 2020