PopClip を用いて Dash でのリファレンス参照の操作を直感的に

このエントリーをはてなブックマークに追加 Pocket

プログラムを作るときには所謂リファレンスマニュアルを参照する機会が多いものです。

素早くリファレンスを参照することができる Dash という Mac アプリを私は気に入って使っています。

Dash (Docs & Snippets) App
バージョン: 1.8.0
現在の価格: 無料
サイズ: 10.5 MB
カテゴリ: 開発ツール, ユーティリティ
販売元: Bogdan Popescu - Bogdan Popescu
全てのバージョンの評価: ★4.5(48件の評価)

Dash は以下で紹介されているようにキーボードショートカットで呼び出して検索語を入力することができます。


Xcodeのリファレンスよりも快適! クラスリファレンスを素早く検索・表示できるアプリ「Dash」 - 拡張現実ライフ
ササッと調べられるのがよいのですよねー

しかし、コードを書いている最中は調べたいキーワードが目の前にあり、以下の操作となることが多いのではないでしょうか。私は多いです。

  1. 調べたいキーワードを選択してコピー
  2. ショートカットで Dash を呼び出し
  3. キーワードの貼り付け

リファレンスを参照する機会は本当に多いのでもう少しラクにできるとよいですよね。 たとえば、ポインティングデバイス(マウスやトラックパッド)でキーワードを選択したときはそのままキーボードを触らずに調べたいですし、キーボードで選択した場合は入力を少なくしたい。つまり、「Dash で調べるためにコピーして、Dash を呼び出して、コピーしたテキストを貼り付ける」ではなく、「このキーワードを Dash で調べる」という操作がしたいのです。

PopClip の拡張

ポインティングデバイスでテキストを選択した際に iOS のようなポップアップメニューを表示する PopClip という Mac アプリがあります。

PopClip App
バージョン: 1.4.4
現在の価格: ¥450
サイズ: 1.5 MB
カテゴリ: ユーティリティ, 仕事効率化
販売元: Pilotmoon Software - Nicholas Moore
全てのバージョンの評価: ★4.5(140件の評価)

PopClip は拡張(Extension)により機能を追加することが可能で、Dash で調べる拡張が提供されています。


PopClip Extensions

▼ たとえばダブルクリックして単語を選択すると以下のようにメニューがポップアップします。Dash のアイコンをクリックすると…
PopClip Dash

▼ 選択した単語が Dash で検索されます。
Dash PopClip 2

これでポインティングデバイスからの検索はだいぶラクになりました。

PopClip のメニューをキーボードから表示する

PopClip のメニューをキーボードから表示できたらよいのになぁと思っていたら、AppleScript で呼び出せるようです。


Invoke PopClip Via Keyboard Using AppleScript, Automator and OS X Services | The Overthinker
tell application "PopClip" to appear ...
φ(゚Д゚ )フムフム…

こちらのページにあるように Automator でサービスメニューを追加し、キーボードショートカットを割り当てることでキーボードから PopClip のポップアップメニューを表示することができます。

これでキーボードからの検索もまずまず。

各アプリのプラグインなどでも

実際に使用頻度が高いのは Xcode や Vim など限られたアプリです(私の場合は)。

Dash の Preference にある [Integration] タブには Xcode や Vim のプラグインなどへのリンクがあります

たとえば [Integration] の Vim のアイコンをクリックすると、以下のコードが書かれた gist ページが表示されるので、とりあえず .vimrc に書いてみました。

" Search Dash for word under cursor
function! SearchDash()
  let s:browser = "/usr/bin/open"
  let s:wordUnderCursor = expand("<cword>")
  let s:url = "dash://".s:wordUnderCursor
  let s:cmd ="silent ! " . s:browser . " " . s:url
  execute s:cmd
  redraw!
endfunction
map <leader>d :call SearchDash()<CR>

<leader>d でカーソル位置にある単語を Dash で調べることができます。

アプリのプラグインなどはそのアプリに最適化されているので、 使用頻度の高いアプリについてはそれらを利用すると快適度が増します。

ふと調べたくなった場合は PopClip で調べるという使い分けになりそうです。