最近弊社に入った新米エンジニアに、
「Atomを入れたんですが、入れておいたほうがい初期設定やプラグインがあったら教えてください!」
とSlackで突然聞かれたので、この記事を書いてみました。1
社内の新人エンジニアに1つだけAtomのキーバインドを教えるとしたら
みなさん、何にしますか?
あ、Atomはキーバインドいじれるので、MacでAtomを入れたてのデフォルト状態と仮定してください。
私は、これです。
全力でcmd + p !!!
cmd + pとは
いわゆる「ファイル名を指定して開く」になります。ツリービューのプロジェクトに登録されたファイルを検索して、ファイル名が入力した文字列に一致する(またはそれに近い)ファイル候補を表示し、Enterを押すと、候補の一番上にあるファイルをそのまま開けます。)
正確には、「fuzzy-finder」というビルトインのpackegeの機能になります。

Atomは全文検索の速さが売りなので、候補が出るのにほとんど待ち時間はありません。慣れてくると、
my_repository/src/Model/Entity/user.php
を開くのに、
cmp+p -> uses.pと入力 -> ENTER と入力して開く(ここまで1秒未満)
といった具合に、ホームポジションから手を離さず、1動作で目的のファイルを開く事が出来るようになります。
cmd + pでファイルを切り替えるメリット
(1)ツリービューから選んだり、タブをマウスで切り替えるよりも圧倒的に早い
コマンドベースのVimに根強い人気がある事からもわかるように2、エディタ操作を効率的に行うためには
- できるだけホームポジションから離さない
 - 操作する→画面を見る→また操作、と言うように、2行程以上必要な操作をできるだけ減らす
 
が基本になります。その基準に照らし合わせてみると、「ツリービューからマウスやトラックパッドで目的のファイルを選択する」という行為は
- そもそもキーボードから手を離さないといけない
 - 「目的のファイルが画面外にある場合はスクロールする」「ディレクトリを(時には何階層も)開閉する」「目的のファイルを一覧から探す」など、目的のファイルにたどり着くまでに、画面表示を逐次確認しながらの操作が多い
 
というように、かなり非効率な手段の組み合わせでできている事がわかります。
「編集するファイルを切り替える」という動作をコーディング作業中にかなり頻繁に行う必要があるのはプログラマなら自明だと思いますので、ここを短縮化する事が、トータルで見るとかなりの効率化につながるのが分かると思います。「ただ1つ教えるコマンド」に選んだのも、この費用対効果の大きさが決め手です。
(2)ツリービューを表示しなくてもいいので画面が広く使える
cmd+pでのファイル変更に慣れてくると、ツリービューを常時表示する必要がなくなります。
とくにノートパソコンで左右2ペイン表示で操作をしていると、エディタ部分の横幅がかなり狭くなってしまいが、ツリービューを消す事で、より画面いっぱいにソースコードを表示する事ができるようになります。
効率的にファイルを切り替えるためのコツ
慣れるまでは大変だと思うので、いくつかポイントです。
フレームワークの命名規則などを利用して、短い文字で確実に目的のファイルが開けるパターンを覚える
例えば、先ほどの
- 
my_repository/src/Model/Entity/user.php→cmp+p->uses.pと入力 ->ENTER 
は、CakePHP3では テーブル名の単数系.phpという命名規則のファイルがEntityクラスしかない事を利用しています。
同様に、
- 
my_repository/src/Template/Users/index.ctp→cmp+p->users indと入力 ->ENTER 
というように、ディレクトリ名を組み合わせたり、複数のリポジトリが含まれている場合でも、
your_repository/src/Model/Entity/user.php -> cmp+p -> yo user.pと入力 -> ENTER
という感じで、ある程度コツをつかめば、サクサク目的のファイルを開く事ができます。
上手くいかなかったらおとなしくツリービューを開く
当然ながら万能ではないので、上手くいかないときはおとなしくツリービューで選択しましょう。 ![]()
その際に、ツリービューを開閉するコマンドを覚えておくと便利です3。
ツリービューの開閉はデフォルトではcmd + /またはcmd + K->Bにバインドされていますが、プラグインのインストールの際などに他の操作に上書きされてしまっている事も多いので、cmd+shift+p -> tree view toggleと入力して、キーバインドを調べておくといいでしょう3。
注意点
cmd + / が使えない事がある
実際にcmd + /に設定されていても、cmd + /でツリービューが開けない事はかなり多いです。たいていの原因は、cmd+/が、編集中の言語に応じたショートカットで「選択範囲をコメントアウト」にキーバインドされているため です。というより、cmd+/はコメントアウト目的で使う人の方が多いと思うので、もう一つのコマンドであるcmd+k->bか、自分で使いやすいキーバインドを設定すると良いでしょう。
.gitignoreされたファイルが検索対象外になる
さすがGithub製だけあって気が利いている・・・と思いきや、バージョン管理ツール経由でインストールするライブラリは大抵.gitignoreに含まれている事が多いため、フレームワークの内部コードやライブラリの実装を見たい場合は使えません。残念ではありますが、逆にライブラリのコードが含まれてしまうと候補となるファイルが膨大になるので、仕方ないですね・・・。
(なお、記事を書いている最中に、もしかしてfuzzy-finderの設定で変えられるかも・・・と思ったのですが、見つけられませんでした 
 もし知っている方がいたらコメントください)
いかがだったでしょうか! 新人のNさん、ぜひcmd+pを活用してくださいね!
この記事は、ITプロパートナーズの五藤がお送りしました。