こちらは ANDPAD Advent Calendar 2022 の2日目の記事です。
こんにちは、ショートカットおじさん、もとい soe-j です。
アドベントカレンダーらしいライトな記事を書くためにやってきました。
入社してから変わらず、より高い価値をいち早く/長く届けたい思いで試行錯誤する毎日を送っております。 その中で「どのように設計するか」「どのように作業分担するか」など議論することが多いと思います。 チームとしてどう開発するか、長期的に品質を保つにはどうするべきか.... 時間をかけるべき観点です。
さて、いざ開発するとき。ここからは言うなれば個人の戦いです。
要件、タスクをコードに落としていくRTAといっても良いでしょう(本当か?)
今回はこのRTAを、基礎、ウインドウ整理、コーディング、拡張の観点に分けて、どう攻略しているか紹介していこうと思います。
基礎
タイピング速度
とにかくキー入力は早い方が良い。全部のスピードがあがる。全部。 エンジニアだけでなく現代の仕事における基礎体力といっても過言ではないと思っています。 脚速かったらサッカーも野球もテニスも強い。詳しくないけど。 コーディングだけでなく、Slackでのやりとり、ドキュメント化においても効果を発揮するはずです。
タイピング速度をあげるには....もうとにかくいっぱいコードを書いてくださいw
ドキュメントを沢山書くのも良いでしょう。
また、インターネットには沢山タイピングゲームがあるので、お気に入りを見つけるのも良さそうです。 私は学生の頃に Ozawa-ken、クムドールの剣にハマってこの力を手に入れました。 いまならお手軽に寿司打などいかがでしょうか。 sushida.net
なるべくキーボードで片付けること
キーボードとマウスを行ったり来たりする時間がもったいない。 というよりキーボードのホームポジションから手を離してから、またピタッとホームポジションに戻すのは難しいものです。 故にすべてキーボードで済むようにセットアップしましょう。 以下、ショートカットとショートカットで実行できるようにするアプリケーションたちを紹介します。
ウインドウ整理
要件書を見ながらコードを書いたり、更に参考サイトを見ながら、その横にビルド結果を表示してたり、Slackで少々確認したり.... 開くウインドウが沢山ありながら、そのときそのとき見るウインドウは常に入れ替わり続けるため、意外とウインドウの再配置を繰り返すことは多いかと思います。 繰り返しやることはキーボードで出来るようにしましょう。
Rectangle
キーボードでウインドウを左右に配置したり、サイズを変更したり出来ます。 rectangleapp.com
Witch
Mac は cmd + tab でアプリケーションが切り替えられますが、更にウインドウも巡回できるようにするために設定。 manytricks.com
Workona
無限に増えるブラウザタブを整理する拡張。もちろんショートカットも備えています。 workona.com
ブラウザタブ切り替え
もちろんショートカット移動。 以下はChromeの例です。
key | 効果 |
---|---|
control + tab or command + option + → |
次のタブ |
control + shift + tab or command + option + ← |
前のタブ |
cmd + 1~8 |
n番目のタブ |
cmd + 9 |
最後のタブ |
コーディング
エディタ
ひたすらショートカットを使ってホームポジションから手を離さずに生活しましょう。
私は Mac + Visual Studio Code を使って、更に手に馴染むようカスタムもしています。 他のエディタでもあらかた設定は出来るかと思います。
以下はあくまで私のセッティングなのでご参考まで。 良さそうなのがあれば、ショートカット設定画面で Command ID による検索が出来るので試してみてください。
key | 効果 | command ID |
---|---|---|
cmd を押しながら k s と入力 | ショートカット設定画面を表示 | workbench.action.openGlobalKeybindings |
cmd + a | 行頭、またはインデントの頭に移動 | cursorHome |
cmd + e | 行末に移動 | cursorEnd |
option + ←/→ | 単語の切れ目まで移動 | cursorWordLeft / cursorWordEndRight |
option + ↑/↓ | カーソルのある行、または選択した行を上下と入れ替え | editor.action.moveLinesUpAction / editor.action.moveLinesDownAction |
option + shift + ↑/↓ | カーソルのある行、または選択した行を上下にコピー | editor.action.copyLinesUpAction / editor.action.copyLinesDownAction |
cmd + option + ↑/↓ | カーソルを上下に増やす | editor.action.insertCursorAbove / editor.action.insertCursorBelow |
cmd + d | カーソル位置の単語を選択、同じ単語を選択 | editor.action.addSelectionToNextFindMatch |
cmd + shift + L | ファイル内のすべての同じ単語を選択 | editor.action.selectHighlights |
cmd + shift + c | 開いているファイルパスをコピー | copyRelativeFilePath |
cmd + j | terminal などを開いているパネルを開閉 | workbench.action.togglePanel |
cmd + control+ j | terminal などを開いているパネルを最大化 | workbench.action.toggleMaximizedPanel |
ctrl + shift + cmd + f | 開いているタブを次のウインドウグループに移動 | workbench.action.moveEditorToNextGroup |
ctrl + shift + cmd + b | 開いているタブを前のウインドウグループに移動 | workbench.action.moveEditorToPreviousGroup |
cmd + p | ファイル名で検索して表示 | workbench.action.quickOpen |
cmd + shift + e | ファイルツリーに移動 | workbench.view.explorer |
Git GUI
私は GitUp を愛用しています。シンプルな表示と豊富なショートカットという至高の組み合わせ。 gitup.co
拡張
上記以外にもパソコンの操作は沢山あるかと思います。 それに対してちょうど良いアプリケーションがないときは作ってしまいましょう。 作るための簡単な手段を紹介します。
Spotlight
各種アプリケーションを呼び出すときに使っています。 いわゆるランチャーアプリは世の中にいっぱいありますが、私はMac標準で事足りてます。
よく使うアプリケーションなら ctrl+space → アプリケーション名の頭文字 だけで起動することが出来るはずです。
Automator
実行したいシェルをアプリケーションとして保存することで Spotlight から呼び出すことが出来ます。 シェルさえ組めればすべてがキーボードの上で完結できます。
Chrome拡張
自動化したいけどAPIがない、認証が複雑などの理由で諦めがちだけど、結局毎日やってる作業ありませんか? Chrome拡張でサクッと解決してしまうのも手かもしれません。 qiita.com
キーボードを拡張
市販のキーボードでは限界?ならば作りましょう! 0から作ることも出来ますし、キットも沢山あります! キーマップをカスタムすれば複雑なコマンドも簡単になりますよ!!! yushakobo.jp
ちなみに愛用のキーボードは Corne Chocolate です。
終わりに
ここまでやるとかなりキーボードの上だけで生活できるようになります。 しかし、まだまだブラッシュアップ出来る点はあると思っているので、あなたの至高のRTAライフを教えてください!
当社アンドパッドでは、コードライティングRTA攻略が大好きなエンジニアもその他の攻略が大好きなエンジニアも積極採用中です。
さまざまなポジションで仲間を募集しています。
詳しくは下記リンクをチェック!
さて、カレンダー序盤にゆるい記事を展開しましたが、いかがでしたでしょうか。 明日は開発組織のマネージャー「ごっさん」こと後藤さんの入社エントリー記事が公開されるそうです!お楽しみに!