プログラムを作るときには所謂リファレンスマニュアルを参照する機会が多いものです。
素早くリファレンスを参照することができる Dash という Mac アプリを私は気に入って使っています。
Dash (Docs & Snippets)
バージョン: 1.8.0
現在の価格: 無料
サイズ: 10.5 MB
カテゴリ: 開発ツール, ユーティリティ
販売元: Bogdan Popescu - Bogdan Popescu
全てのバージョンの評価: ★4.5(48件の評価)
Dash は以下で紹介されているようにキーボードショートカットで呼び出して検索語を入力することができます。
Xcodeのリファレンスよりも快適! クラスリファレンスを素早く検索・表示できるアプリ「Dash」 - 拡張現実ライフ
ササッと調べられるのがよいのですよねー
しかし、コードを書いている最中は調べたいキーワードが目の前にあり、以下の操作となることが多いのではないでしょうか。私は多いです。
- 調べたいキーワードを選択してコピー
- ショートカットで Dash を呼び出し
- キーワードの貼り付け
リファレンスを参照する機会は本当に多いのでもう少しラクにできるとよいですよね。 たとえば、ポインティングデバイス(マウスやトラックパッド)でキーワードを選択したときはそのままキーボードを触らずに調べたいですし、キーボードで選択した場合は入力を少なくしたい。つまり、「Dash で調べるためにコピーして、Dash を呼び出して、コピーしたテキストを貼り付ける」ではなく、「このキーワードを Dash で調べる」という操作がしたいのです。
PopClip の拡張
ポインティングデバイスでテキストを選択した際に iOS のようなポップアップメニューを表示する PopClip という Mac アプリがあります。
PopClipバージョン: 1.4.4
現在の価格: ¥450
サイズ: 1.5 MB
カテゴリ: ユーティリティ, 仕事効率化
販売元: Pilotmoon Software - Nicholas Moore
全てのバージョンの評価: ★4.5(140件の評価)
PopClip は拡張(Extension)により機能を追加することが可能で、Dash で調べる拡張が提供されています。
▼ たとえばダブルクリックして単語を選択すると以下のようにメニューがポップアップします。Dash のアイコンをクリックすると…
これでポインティングデバイスからの検索はだいぶラクになりました。
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
に書いてみました。
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 で調べるという使い分けになりそうです。