この記事はゆるWeb勉強会@札幌 Advent Calendar 2019の18日目の記事です。
ゆるWeb勉強会はまだ参加したことないですが、Advent Calendarに参加してみました。
といつつ本日初参加する予定です。 「ゆるWeb勉強会@札幌 スペシャル / 探索的テストを学ぼう! with TEF道」
ゆるい感じのポストということで(笑)、普段愛用しているMacアプリのAlfredのスニペット管理方法についてです。
Macユーザ限定なポストになりますが、Alfred使ってる方は多いのではないでしょうか。
調べた中でExportしたスニペットファイルを unzip
するとJSONが出力されることがわかりました。
JSONの元データをGithubなどに管理しつつ zip
でAlfredへimportする流れを書きたいと思います。
まずは作ったスニペットはGithubにアップしています。
Alfredについて
Macで使えるアプリです。
ファイルやファイルなどを簡単にアクセスできるランチャーアプリになります。
無料版でも十分使えるのですが、自分は課金ユーザです。(Powerpack)
理由は色々ありますが、ワークフロー機能だったりなど課金することでさらに機能が使えるからです。
そのAlfredの機能にあるSnippetsを管理することができます。
このSnippetを登録しておくとアプリに関係なくSnippetを呼び出すことができます。
Gitコマンドスニペットを作った理由
Gitはコマンドを使ってるのですが、だいたい使うコマンドは頭に入ってるのですが たまに使う
コマンドだったりずらずらとかかないといけないコマンドはSnippetで管理しようと思いました。
Git以外にも mysql
や rsync
などもSnippetsに入れて管理するようにしました。
Alfred自体はDropbox同期して管理はしているので、端末が変わってもデータは同期し直すことで新しい環境でも使えるようにしていますが、他人と共有したり案件特有のものを複数人で管理するときに役に立つかなと思います。
手元のSnippetsをエクスポートしてみる
冒頭で書いたとおり、Snippetsをエクスポートしたら XXXX.alfredsnippets
というファイルを取得できます。
このファイルを unzip
することで登録しているSnippetの内容をJSONを取得できます。
// 取得した XXXX.alfredsnippets をunzipします
# unzip XXXX.alfredsnippets
解凍すると登録したSnippetがJSONファイルが出力されます。
{
"alfredsnippet": {
"snippet": "git diff {作業前のコミットID} {最新のコミットID} {特定のフォルダ指定} > {path/to/hogehoge.diff}",
"dontautoexpand": true,
"uid": "Gitコマンド",
"name": "Diffの出力 特定のディレクトリのみ対象",
"keyword": ""
}
}
項目 | 内容 |
---|---|
snippet | 登録されているスニペットの中身 |
dontautoexpand | スニペットを自動で展開させない設定 |
uid | 識別子 |
name | 登録スニペットの名前 |
keyword | キーワード |
JSONの型はこのようになります。JSONを出したときは 名前+識別子.json
で出ますが名前は識別子も名前も自由に変更可能です。
追加する際は、このJSONと同じ型で登録して再度 zip
で XXXX.alfredsnippets
にしてインポートすると登録スニペットが更新されます。
// zipするファイル名を指定 XXXXX.alfredsnippets と まとめたいJSONを指定する
zip XXXXX.alfredsnippets *.json
手順
- Alfred管理画面からSnippetsをエクスポートする
- エクスポートした
XXXX.alfredsnippets
を unzipする - 展開されたJSONと登録したいSnippetをJSONファイルにして追加する
- zipコマンドで
*.json
を指定してXXXXX.alfredsnippets
ファイルを作成する XXXXX.alfredsnippets
をダブルクリックしてAlfredへインポートする
参考サイト
管理方法を考えてみて
結局、自分だけであればDropbox同期でAlfredの設定画面で登録したほうが早いですしわかりやすいと思います。
今回は .alfredsnippets
をコードで管理する場合はどうやるのだろう?と思ったのでGit Commandの整理も含めてやってみたポストになります。
複数人の場合、Dropbox同期させることは難しい場合があります。コードをGitで管理し XXXXX.alfredsnippets
を更新して各自でダウンロードしてもらうときには良いかもしれません。
ちなみにzipコマンドすらメンドイ場合は、CIかnpm scriptで実行させるのもありかなと思ったりしました。
今回作ったGit CommandのSnippetsはちょこちょこ更新をかけていこうかと思いますので、興味がある方はぜひ使ってみてください。
また、ちょっとしたSnippetsを共有したい方法としての参考になればと思います。
<ClientOnly>
<PostAdSense />
</ClientOnly>