Alfredを使って開発業務の効率を上げるおすすめのTips

こちらの記事は、
Alfredを多分に使うことで日々の業務の効率を少しでも上げる工夫をしようとしている筆者が、
Alfredでよく使う便利な機能を紹介する記事となっています。

どんな業務をどのように工夫しているかというと、下記のような1日に何回も発生する業務を、
Alfredを用いて、できるだけ楽に、速く行えるようにするといった工夫を行っています。

- Googleで検索する
- APIリファレンスを調べる
- アプリを切り替える

私としては、時間短縮などの面でAlfredを大変重宝しているのですが、
周りであまりAlfredを頻繁に使っている人を見かけることが少なく、もしかしたら私のtipsが誰かの役に立つかもしれないと思って書いてみました。

タイトルには開発業務とありますが、ここに書いてある内容は、PC業務全般で役に立たせることができるものも多いと思います。

少しでも業務効率化のお役に立てたら幸いです。

以下の内容は、mac(Catalina 10.15.2)のAlfred3(3.6.1)とAlfred4(4.0.7)で動作確認をしています。

## そもそも[Alfred](https://www.alfredapp.com/)とは？

そもそも[Alfred](https://www.alfredapp.com/)をご存知ない方には、どんなツールなのか実際に見ていただいた方が分かりやすいと思うので、
私がAlfredでよく使う機能を連続で実演しているところをgifにしてみました。

gifでは下記のことを順に実行しています。

1. Alfredを起動する。(私は⌘を二回押すことで起動できるようにしています。コマンドは自由に設定することができます。）
2. `validates.rb`というファイルを検索し、Rubymine（IDE)で開く
2. Googleで`validates`メソッドを検索する
3. slackのgeneralチャンネルを開く
4. ChromeでGoogle Calendarを開く

![ezgif.com-video-to-gif (2).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/381134/1ba4c393-a3a2-331a-15e7-33caeb103696.gif)


ざっくり言うと、一つのツールにいろんな検索機能（Googleとか）、Spotlight機能(アプリ起動)、コピー履歴＆スニペット管理（Clipyみたいな機能）などなどの機能を詰め込んで、コマンドで操作できるようにしたものです。

以下では、私がよく利用しているAlfredの機能の詳細やその設定方法のリンクを紹介しています。

## APIリファレンス検索
APIリファレンス検索というと堅苦しいですが、『メソッドの引数何だっけ？』とか『これどんなメソッド何だろう？』とかを検索するのと同じことです。

Googleで検索される方も多いと思うのですが、公式のドキュメント内で検索するために、私は[Dash](https://kapeli.com/dash)というツールとAlfredを組み合わせて検索しています。
（DevDocsでも同様のことができます。)

下のgifを見ていただくと分かりやすいかと思うのですが、結構素早くドキュメントを検索できて、個人的にとても便利です。
例では、Rubyの`chunk`メソッドを検索しています。

検索は、下記の順で行います。
1. Alfredを起動する。
2. 調べたい言語(rubyとか)、フレームワーク(railsとか)、ライブラリ（rspecとか)を入力する。(Dash側で使用する言語やライブラリのdocをinstallする必要があります。）
3. 2の入力に続けて、調べたいメソッドやクラスを入力する。
4. 候補から選択する。

![ezgif.com-video-to-gif.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/381134/89bb929a-2516-8369-6a31-4ff021a84daf.gif)


**設定方法**
Dash：[DashとAlfredを連携してリファレンスの参照を簡単にする](http://rikei-webmemo.hateblo.jp/entry/2014/06/19/104153)
DevDocs: [alfred-devdocs](https://github.com/yannickglt/alfred-devdocs)

## 英語でGoogle検索(検索結果から日本語のページを除去）
トップクラスに使うことが多い機能です。

調べものをしているときに、日本語のページを含まずに、英語のページのみを検索したいことがよくあります。

こんなときもgoogle.comとAlfredを組み合わせて、素早く検索することができます。

![ezgif.com-video-to-gif.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/381134/0f852261-e0ab-b946-87f2-196e74c9efcc.gif)


**設定方法**
詳しいやり方は下記の参考サイトに記載していますが、
`Add Custom Search`で英語検索機能を追加して、Search URLを`https://www.google.com/search?q={query}&gl=us&hl=en&gws_rd=cr&pws=0`に設定することで、実現することが可能です。

下の感じで設定すると、『gle』というKeywordでショートカット起動できるようになります。

<img width="1184" alt="スクリーンショット 2019-12-19 17.21.17.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/381134/e5ba0b80-036d-8420-bc23-00469cda3ee5.png">

参考: [Web Search, Custom Search & URLs/History - Alfred Help and Support](https://www.alfredapp.com/help/features/web-search/)
参考: [Chromeで簡単にアメリカ(USA)版のGoogle(Google.com)を利用する方法](https://qiita.com/murata0705/items/f16c73d7bbbdb52322c3)

（通常のGoogle検索（日本語含む）は設定が必要ないです。最初からAlfred起動→検索ワード入力→enterで検索できます。）

## Qiita検索
上記の英語でのGoogle検索のように、Qiita内で記事を検索することができます。
(StackOverflowでも同様のことができます。）

**設定方法**
やり方は２つあります。

簡単な検索だけを使う場合は`Add Custom Search`をして、Search URLを`https://qiita.com/search?q={query}`に設定するだけです。

自分がストックした記事の中で検索するなどより詳細に検索したい場合は、下記のWorkflowを使うことで可能です。

- [Alfred Qiita Workflow](https://github.com/uetchy/alfred-qiita-workflow)

## 英単語検索

Google Translateなども使えますが、私はweblioで検索をしています。

**設定方法**
こちらも上記同様に、`Add Custom Search`をして、Search URLを`https://ejje.weblio.jp/content/{query}`にすると、完全一致で英単語を検索することができます。

## ファイル検索→IDEやエディタでファイルを開く
これも最初のgifで実演した機能ですが、よく使います。

これは正直イマイチな運用で、しかも最初の設定が面倒なんですが、
拡張子によって開くアプリケーションを指定することで、
ファイル検索→IDEやエディタで開くということを実現しています。

(もっと良いやり方をご存知の方がいらしたらご教授いただきたいです。もし特定のディレクトリ配下の起動アプリを設定することができれば最高なんですよね。)

**設定方法**
設定方法としては、特定の拡張子のファイルを開く時のアプリケーションを、使いたいIDEやエディタに設定するだけです。

（私は拡張子が`.rb`や`.slim`のファイルを開く場合にはRubymineで、`.go`を開くときにはVSCodeで開くといったように使ったりしてます。）

参考： [macOSで、どのアプリケーションで開くかを指定する3つの方法（関連付け）](https://www.dtp-transit.jp/apple/mac-os-x/post_2239.html)


## アプリ起動
当たり前の機能ですが、Spotlightのように、『Slack』や『Safari』といったキーワードを入力するとアプリを起動・切り替えできます。

GUIでの切り替え、ショートカット切り替え、tabで切り替えなども試しましたが、個人的にはAlfredを使ったアプリの切り替えに落ち着きました。

## ブラウザブックマークの起動
SafariやChromeに登録してあるブックマークの名前を入力すると、部分一致で候補を表示させて、そのサイトを開くことができます。

**設定方法**
ブックマーク設定画面から簡単に設定できます。

<img width="1101" alt="スクリーンショット 2019-12-19 23.21.10.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/381134/877d631b-e523-0d25-5918-216ae5cbcff5.png">

## よく開くサイトのショートカット（Google CalendarやGithubをパッと開ける）

Google CalendarやGithubといったよく開くサイトには、専用のコマンドを用意することができます。
（ブックマークに登録しておいて検索することもできますが、この運用をすることでブックマークの数をできるだけ減らしています。）

一例としては、Google Calendarを`cale`という入力で、Chromeで開けるように設定することができたりします。

また、デフォルトでGmailやTwitterをショートカットで開けるように設定がされています。

**設定方法**
下記はGoogle Calendarのショートカットの設定例です。
Web Searchの設定画面で、`Add Custom Search`をしてSearch URLに開きたいサイトのURLを設定するだけです。
<img width="678" alt="スクリーンショット 2019-12-19 23.30.15.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/381134/884282b0-dcec-8c38-eb94-9ab2c8777df2.png">

## ターミナルでコマンドを実行する（iTerm2でもできます）

Alfredで下記のように`>`のあとにコマンドを入力すると、そのコマンドをターミナルで実行できます。

```
> コマンド
```

#### Alfredで使うターミナルをiTerm2にするやり方
デフォルトだと、mac標準のターミナルで実行することになっているのですが、下記の設定を行うことでiTerm2を使えるようになります。

- [custom-iterm-applescripts-for-alfred](https://github.com/stuartcryan/custom-iterm-applescripts-for-alfred)

## ghkwで命名候補を比較する

命名を考える上で、ghkwをよく使わせていただいてるのですが、上記のターミナルでのコマンド入力とのコンボで、
下記のようにAlfredに入力することで、簡単に検索できてよく使っています。

```
> ghkw 検索したいワード1 検索したいワード2
```


#### ghkwの説明が書いてあるページ

>プログラムのネーミングで迷ったら GitHub でキーワードを検索して、ヒットした件数が参考になるのでは？

[プログラムのネーミングに迷ったら GitHub でコード検索すると参考になる説](https://qiita.com/kyoshidajp/items/c5d4f060df636ea20cbb)

## Slackのチャンネルを開く

一番最初のgifでも紹介しましたが、`slack #general`でslackのgeneralチャンネルを一発で開くことができるので、便利かもです。

**設定方法**

- [alfred-slack](https://github.com/yannickglt/alfred-slack#create-an-app-for-your-team)


## コピー履歴、スニペット機能
[Clipy](https://github.com/Clipy/Clipy)を使われている方も多いと思いますが、同様のことがAlfredでもできます。
コピー履歴はしょっちゅう使いますし、スニペット機能も会社の住所や、忘れがちなdockerのコマンドを調べることなく入力できるのでとても重宝しています。

コピー履歴とスニペット機能を使われたことがない方は、とても便利な機能なのでAlfredに限らず、ぜひ一度使ってみてください。おすすめです。

**設定方法**

- [Help and Support > Features > Clipboard History](https://www.alfredapp.com/help/features/clipboard/)

- [Alfred 4でスニペットを作成して使用する方法](https://webrandum.net/alfred4-snippets/)


## JetBrainsのプロジェクトを起動する

JetBrains内のプロジェクトを開くことができます。
プロジェクトを指定してIDEを開く際や、複数のプロジェクトを別windowで開いているときに、そのプロジェクトに飛べるのが便利です。

**設定方法**

- [jetbrains-alfred-workflow](https://github.com/bchatard/jetbrains-alfred-workflow)


## 参考文献

他にも下記の記事で大量にAlfredの便利機能が紹介されていて、興味深かったです。

[開発におすすめの Alfred Workflows ○○選](https://qiita.com/DriftwoodJP/items/6bee03df0a0da499320a#qiita)