Alfredを使いこなせてない君に！【Alfredの使い方完全版】

# 最初に
こんにちは、jackです。

実は先日社内講習会にて、「Alfredによる業務効率化」という発表をしたところ思いの外反響があったので、それを記事にしてしまおうということで書いていきます。

タイトルにもある「完全版」という名の通りこの記事は、まだAlfredを知らない方から、聞いたことあるって方、使ってはいるけどの使いこなせてない人まで、**これさえ見れば誰でもAlfredマスターになれる**方法を紹介していきます。
また、私の思う**最強の使い方**もいくつか紹介できればなと思います。


# 目次
* [Alfredとは](#alfredとは)
* [インストール方法](#インストール方法)
* [基本機能](#基本機能)
    * [App Launcher](#app-launcher)
    * [ファイル検索](#extrafile-search)
* [Alfredがすごいのはここから](#alfredがすごいのはここから)
    * [ブックマーク検索](#ブックマーク検索)
    * [システム操作](#システム操作)
* [**おすすめ！** Powerpack(有料版)のすごさ](#おすすめ-powerpack有料版のすごさ)
    * [Powerpackライセンスの種類](#powerpackライセンスの種類)
    * [Clipboard History](#clipboard-history)
    * [Snippets](#snippets)
    * [Workflows](#workflows)
    * [おすすめWorkflows](#おすすめworkflows)
    * [Dropbox同期](#dropbox同期)
* [さいごに](#さいごに)


# Alfredとは
<img width="100" alt="alfred icon" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265582/8fcdacf5-862b-34a4-864a-e10d8e41f7d5.png">

よく聞く話、Alfred聞いたことあるな(知ってるな)って方は、知人に紹介されたときに
**「Macに標準でついているSpotlightのようなランチャーアプリだけどかっこいいやつ」**
と言われた方が多いのではないでしょうか。

まさにそれは間違ってはないのですが、Alfredの紹介がそれだけではどうしてSpotlightと同じものをわざわざインストールしてまで使わなきゃいけないのって思っちゃいますよね。
<img width="600" alt="alfred" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265582/e0446022-31e1-17be-2d19-21f15c2c008a.png">

たしかにSpotlightそっくりな見た目に似たような機能をもっていますが、Alfredはそれだけではありません。
さっそく次の章からAlfredの使い方をどんどん紹介していきたいと思います。

# インストール方法
*すでにインストールしてるよって方は読み飛ばしてください
ダウンロード、インストール手順は至って簡単です。

**公式サイトからダウンロードして、一般の手順に従ってインストールすればOK**
https://www.alfredapp.com

もしくは

**Homebrew caskコマンドで一発インストール**

```sh
brew cask install alfred
```

# 基本機能
まずは基本機能です。
カバーしきれないほど機能があるので、もっとも使うと思われる機能をいくつか紹介していきます。

### Hotkey
Mac搭載のSpotlightと同様にAlfredもHotkeyで起動します。
これはそれぞれお好みのHotkeyを設定してください。
個人的には、`Caps`を`Ctrl`にOSレベルで変更してからの、`Ctrl+Space`がおすすめです。
<img width="600" alt="hotkey settings" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265582/13dce1dc-15ec-4b3a-9a25-523679a459f0.png">

### App Launcher
こちらもSpotlightと同じ感覚で使えるので違和感ないでしょう。
開きたいアプリケーション名を打ちはじめると予測変換してくれるので、簡単にアプリケーションの切り替えができます。
![App Launcher](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265582/4a5f9fe6-53e6-92f7-4c70-0d182da8f3b0.gif)

### Extra/File Search
ファイルの種類や検索範囲を絞れたりと、Spotlightよりカスタマイズ性の優れたファイル検索が行えます。
またファイルを選択した状態から`Shift`キーを押すことによって、Quick Lookもできたりします。
<img width="600" alt="file search" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265582/b98a15b2-f537-a769-82d7-b96231466eb5.png">

# Alfredがすごいのはここから

正直、上に紹介した機能だけ使うのであればまったくもってAlfredに乗り換える必要はないでしょう。
しかし、Alfredがすごいのは**ここから**です。

### ブックマーク検索
Alfredの無料版でも使える優秀な機能の一つとして、ブックマーク検索があります。
ChromeもしくはSafariのブックマークをAlfred内から検索できます。
いくらBookmark Barが散らかっていても、キーワード1つで検索できるのでとても便利です。
<img width="600" alt="bookmark search" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265582/0b9dacc6-1eaf-cf06-bfbc-571dc82ac42e.png">


**【追記: 2021/04/13】**
最近はChrome・Safari・Firefox以外にもBrave等、いいブラウザも増えてきましたね。
そこでブラウザ依存したくない方のためにブックマークワークフローを作りました。
フォルダー概念はないですが、名前とリンクのリストをテキストで保存してくれます。
Dropboxに保存しておけば大切なブックマークを失うこともないですし、どのブラウザでも開くように設定できるので使ってみてください。
https://github.com/jackchuka/alfred-workflow-bookmarks
（解説は英語ですが、なにか不明点があったらお気軽に[Twitter](https://twitter.com/jackchuka)やらコメントなどでお知らせください）

### システム操作
また、Alfredはシステム操作の機能も豊富です。

よく会社ではセキュリティ観点から離席時にMacをロックするので、すごく重宝してます。
<img width="600" alt="lock screen" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265582/652f66a5-a879-4c04-ecd1-268bbfe17ec3.png">

こちらもよく使う機能で、ゴミ箱を空にしたい時はこれ一発で完了です。
<img width="600" alt="empty trash" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265582/554f168f-754b-ed46-29d9-fb8901852582.png">

ロックやゴミ箱機能だけでなく、SleepやShutdownなどこれらすべて対応してます。
<img width="600" alt="all system commands" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265582/18b73d38-3e67-9c14-279b-05b45e43580d.png">

# おすすめ！ Powerpack(有料版)のすごさ

さぁ、**ぶっちゃけここからが本題です**。
有料版のお値段は45ポンド（およそ5800円）と決して安くはありませんが、本当におすすめです。
有料版と聞いて周りの人はよく購入を躊躇するのですが、これを**買わないと人生損してると言ってもいいくらいもったいない**と思っています。


**【追記: 2021/04/13】**
£45 → £49(7,400円くらい)とまた少し値上がりしてしまいましたね😢
買いきりなので1万円でも買うんですが、さらに上がる前に購入をおすすめします。
**【追記: 2023/04/25】**
£49 → £59(9,800円くらい)

### Powerpackライセンスの種類

**Buy the Powerpack**のページに行くと2種類のライセンスどちらかでAlfred有料版を購入できます。
<img width="600" alt="Screen Shot 2019-06-26 at 0.14.47.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265582/a49f3e96-20c9-eacb-a6a4-1ee640d7a57e.png">


どちらとも買い切りのライセンスですが

**Single Licence** は現行バージョンをお持ちのMac2台までインストール可能です。ただし新しいAlfredのバージョンが出てもアップグレードはできません。

**Mega Supporter** は永久無料でバージョンアップグレード可能です。（台数についての記載はありませんが、おそらく4台）

私自身は以前、Alfred 3のMega Supporterライセンスを購入していたのでAlfred 4へ無料アップグレードができました。いつアップデートがくるかわからないですし、ここまで使えるツールには頑張っていただきたいので、Mega Supporterライセンスの購入を強くおすすめします。

さて、**すごい回し者感がでてきてしまっても困るので、実際になぜここまで購入をおすすめするのか**を話していきたいと思います。


**単刀直入に言うと以下で紹介する3つの機能が購入する理由です**。これらいくつかの機能は別アプリをインストールすることでも補えますが、Alfredの方が便利な上、Alfred上ですべて完結するのが魅力です。

### Clipboard History
ずばり、これだけでもPowerpackの威力を感じることができる機能が、クリップボード履歴です。

すでにおわかりでしょうが、Mac上で**コピーしたものの履歴が保存される機能**です。

最大3ヶ月分の履歴を残してくれる上、履歴のナビゲートや検索ができるので、「あれ？この前コピーしたものなんだっけ？」ということが無くなります。
![clipboard history](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265582/afd69f10-a71f-60d5-a6d7-b24e8f734959.gif)

いつも通りAlfredを起動して`clipboard`とタイプすることで起動できますが、Hotkeyを設定することで、ランチャーやファイル検索と使い分けて、簡単に呼び出せるので便利です。
私の場合、`Cmd + Opt + c`で呼び出し設定しています。
<img width="600" alt="clipboard history settings" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265582/88f1f633-bc10-7c61-ec8a-d1a67435e449.png">


### Snippets
スニペット機能は、**よく使う文章やコードブロックに名前をつけて保存できる機能**です。
使い勝手はクリップボード履歴機能と似ているというかほぼ一緒なので違和感なく使えると思います。

クリップボード履歴と違い消さない限り保持してくれるので、例えば以下のようなものを保存することで、威力を発揮します。

* **よくコピーするもの**：なんどもコピーしているのであればSnippetsに昇格させてあげる
* **SQLクエリ**：よく使うクエリやサブクエストなどを使った複雑なクエリのナレッジベースを貯める
* **Codeスニペット**：よく使うコードブロック、Goの`if err != nil`的なもの

スニペット機能もHotkey設定が出来ますが、クリップボード履歴と同じウィンドウからの検索ができるため設定せずに、並行して検索すると便利です。
<img width="600" alt="snippets settings" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265582/6f694f7a-94bc-cc7d-4960-079694254f09.png">

実は、スニペット機能にはさらに便利な使い道があります。
[Dynamic Placeholders](https://www.alfredapp.com/help/workflows/advanced/placeholders/)と言われるある種の変数が使えます。詳細は公式サイトを見ていただきたいのですが、いくつか活用例を紹介します。

以下の動画ではまず、
`email hello`という名前のスニペットを使いエディターに書き出しています。書き出した直後にカーソルが勝手に`Hi <ここ>`に移動しているのですが、これがDynamic Placeholderの、*指定した場所にカーソルを移動してくれる*`{cursor}`機能です。
次に、全文を一度コピーした後、別のDynamic Placeholder機能`{clipboard:uppercase}`を使い、全文が大文字に変換されました。今度は`{clipboard:lowercase}`のスニペットで小文字に戻して終わりです。
![snippets demo](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265582/eb38daa4-058e-caba-3619-fa13c6169c59.gif)

いかがでしょう。動画自体は実践的な使い方ではありませんが、Dynamic Placeholderは使いこなせばかなり便利な機能です。
以下にいくつか便利な使い例を書いておきます。

* **```` ```{clipboard:}``` ````**：Markdownにコードブロックを書くときに使えるスニペット 
* **`{date:yyyy-MM-dd HH:mm:ss}`**：フォーマットされた今日の日付取得のスニペット
* **`{random:UUID}`**：ランダムUUID生成

### Workflows
さて、いよいよ紹介する最後の機能になってしまいました。
Workflowsとは、Alfred上でプログラマブルな機能を自分で作成できるものです。
Alfredの標準搭載機能で補えないようなものでも、いろんなプログラミング言語で実装することが可能です。
正直この機能を文章だけで表現するのはすごく難しいので1つの使用例を動画にしました。

この動画で使っているコマンドは、私が作成した`ghq`コマンドというもので、やっていることは至ってシンプルです。
普段[`ghq`](https://github.com/motemen/ghq)を使ってコードを管理しているので、`ghq`配下のプロジェクトをIntelliJで開くというものです。通常、業務中はいくつものプロジェクトを開かなくてはならないため、IntelliJの`Open Project`から選択するのですが、マウス操作や検索に時間がかかって仕方なかったところ、このコマンドを実装することで効率化を図りました。
`ghq <query>`で、フォルダ内検索を行い、`Open`するだけですが、これだけでプロジェクト切り替えがスムーズになりました。

こちらのWorkflowはGithubにあげてあるので、よかったら使ってみてください。
https://github.com/jackchuka/alfred-workflow-ghq
![alfred ghq](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265582/e7c0c54d-6f9f-b523-16d3-ac2390169d4d.gif)

「実装する」と聞くと少しハードルが高いような気がしますが、オンラインコミュニティでたくさんのWorkflowが公開されているので、ダウンロードするのも1つの手です。下に、私の使っているWorkflows一覧とそれぞれダウンロードリンクを載せているので、ぜひご活用ください。

#### おすすめWorkflows

##### [Audio Switch](http://www.packal.org/workflow/audio-switch)
システムオーディオ、インプット・アウトプットの切り替えに便利です。
<img width="600" alt="audio switch workflow" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265582/4cc25a3c-3f13-69d9-1411-a2d579c52744.png">

##### [Bit.ly](https://github.com/techcraver/alfred-bitly-shortener)
長いURLをBitlyの短縮URL生成してクリップボードに保存してくれます。
<img width="600" alt="bitly workflow" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265582/a18e4a0d-bee5-7e93-daae-9a7b2c680a40.png">

##### [Colors](http://www.packal.org/workflow/colors)
Color RGB・Hexの変換・表示、Web系エンジニアは重宝するでしょう。
<img width="600" alt="color workflow" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265582/251f6ed9-67f3-04b4-5ad2-0815f5921d01.png">

##### [Div](https://github.com/pawelgrzybek/div)
Windowマネージャー、これとは別に私はSpectacleを使っていますが、こちらもすごく便利です。
<img width="600" alt="div workflow" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265582/44f0826a-fad5-a1b3-acfb-f4d588503633.png">

##### [Encode / Decode](https://github.com/willfarrell/alfred-encode-decode-workflow)
文字列をエンコード・デコードしてくれます。
<img width="600" alt="encode/decode workflow" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265582/5b7c1a55-db25-287c-955d-b3e5d1613868.png">

##### [Epoch Converter](https://github.com/snooze92/alfred-epoch-converter)
UNIX時間変換、デフォルトは現在時刻をUNIX時間で表示してくれます。
<img width="600" alt="epoch coverter workflow" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265582/eaaf9b83-e90a-8d58-77c2-452797e07511.png">

##### [Fakeeum](https://github.com/deanishe/alfred-fakeum)
いわゆるFakeデータジェネレーター。テストを書いているときなどに便利です。
<img width="600" alt="fakeeum workflow" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265582/8dd7e542-0162-86f3-1efe-1c36e55d4f7d.png">

##### [Github](https://github.com/gharlan/alfred-github-workflow)
Githubツール。Githubのレポジトリやユーザーを検索できます。
Githubのアクセストークンでログインすればプライベートレポジトリも検索できます。
<img width="600" alt="github workflow" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265582/14f31b00-fee2-f9a3-58f4-dcc4f7060d63.png">

##### [Menu Bar Search](https://github.com/BenziAhamed/Menu-Bar-Search)
各アプリケーションのメニューバー内検索。こちらもすごく便利で、アプリケーションのメニューバーから探すのが面倒なときに役立ちます。Chromeのエクステンションを開いたり、アプリケーションのアップデートチェックするなどの操作がものすごく短縮されます。
<img width="600" alt="menu bar search workflow" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265582/d604c04f-0504-afed-5867-10f56fd4bfea.png">

##### [Network](https://github.com/mrodalgaard/alfred-network-workflow)
Wifi・ネットワーク情報の表示してくれます。
<img width="600" alt="network workflow" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265582/67968db3-4077-d84e-e274-1f3e8ae85e49.png">

##### [Package Manager](https://github.com/willfarrell/alfred-pkgman-workflow)
ほとんど全ての言語のパッケージマネージャーに対応しているパッケージ検索ツール。
<img width="600" alt="package manger workflow" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265582/5f66911b-b86e-455d-4f84-9c8bb86d76c3.png">

##### [Terminal Finder](https://github.com/LeEnno/alfred-terminalfinder)
ターミナルからファインダーへの移動やその反対の作業をよく行う人には便利です。
<img width="600" alt="terminal finder workflow" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265582/0f6f6688-b152-7486-c072-33b3bf0c88a8.png">

##### [Time Zones](https://github.com/jaroslawhartman/TimeZones-Alfred)
複数タイムゾーンの表示・変換ツール。複数タイムゾーンを跨いだプロジェクトなんかがある時に、先方の時間がひと目で分かります。
<img width="600" alt="time zones workflow" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265582/edefeee5-7cb2-fa43-3575-e93a0baeb479.png">

### Dropbox同期
ここまでAlfredの実践的な機能を紹介してきましたが、最後の最後にもう一つ大事な機能を紹介します。
このDropbox同期機能を使えば、今まで貯めたスニペットだったり、Workflowを複数Mac間で同期することができます。これで、新しいMacに買い替えてもAlfredをインストールするだけなので安心です。
設定は簡単で、サイドバーから"Advanced"を選択し、右側の"Set preferences folder..."をクリックしたらSyncしたいフォルダを選択するのみです。この場合、`~/Dropbox`としてます。
<img width="600" alt="dropbox sync" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/265582/11452187-f29a-aef6-3c9c-0eb14b27f16e.png">


# さいごに
どうでしたでしょうか？Alfredのすべての機能紹介までとは行きませんが、私が日頃使う機能は殆ど紹介できたと思います。日頃から使っているAlfredの良さを広めたい一心で記事を書きましたが、少しでも良さが伝わっていれば嬉しいです。

最後になりますが、この記事が「参考になったよ！」とか「Alfredを購入したよ！」とかフィードバックいただけると嬉しい限りです。

それでは、また！