AlfredのSnippet管理方法について

Posted on:2019-12-18

この記事はゆる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について

Alfred

Macで使えるアプリです。
ファイルやファイルなどを簡単にアクセスできるランチャーアプリになります。
無料版でも十分使えるのですが、自分は課金ユーザです。(Powerpack)
理由は色々ありますが、ワークフロー機能だったりなど課金することでさらに機能が使えるからです。

そのAlfredの機能にあるSnippetsを管理することができます。
このSnippetを登録しておくとアプリに関係なくSnippetを呼び出すことができます。

Gitコマンドスニペットを作った理由

Gitはコマンドを使ってるのですが、だいたい使うコマンドは頭に入ってるのですが たまに使う コマンドだったりずらずらとかかないといけないコマンドはSnippetで管理しようと思いました。
Git以外にも mysqlrsync などもSnippetsに入れて管理するようにしました。

Alfred自体はDropbox同期して管理はしているので、端末が変わってもデータは同期し直すことで新しい環境でも使えるようにしていますが、他人と共有したり案件特有のものを複数人で管理するときに役に立つかなと思います。

手元のSnippetsをエクスポートしてみる

Alfred

冒頭で書いたとおり、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と同じ型で登録して再度 zipXXXX.alfredsnippets にしてインポートすると登録スニペットが更新されます。

// zipするファイル名を指定 XXXXX.alfredsnippets と まとめたいJSONを指定する
zip XXXXX.alfredsnippets *.json

手順

  1. Alfred管理画面からSnippetsをエクスポートする
  2. エクスポートした XXXX.alfredsnippets を unzipする
  3. 展開されたJSONと登録したいSnippetをJSONファイルにして追加する
  4. zipコマンドで *.json を指定して XXXXX.alfredsnippets ファイルを作成する
  5. XXXXX.alfredsnippets をダブルクリックしてAlfredへインポートする

参考サイト

管理方法を考えてみて

結局、自分だけであればDropbox同期でAlfredの設定画面で登録したほうが早いですしわかりやすいと思います。
今回は .alfredsnippets をコードで管理する場合はどうやるのだろう?と思ったのでGit Commandの整理も含めてやってみたポストになります。
複数人の場合、Dropbox同期させることは難しい場合があります。コードをGitで管理し XXXXX.alfredsnippets を更新して各自でダウンロードしてもらうときには良いかもしれません。
ちなみにzipコマンドすらメンドイ場合は、CIかnpm scriptで実行させるのもありかなと思ったりしました。
今回作ったGit CommandのSnippetsはちょこちょこ更新をかけていこうかと思いますので、興味がある方はぜひ使ってみてください。
また、ちょっとしたSnippetsを共有したい方法としての参考になればと思います。

<ClientOnly>
<PostAdSense />
</ClientOnly>