まつもとゆきひろさんのインタビュー記事の、以下やりとりに感化されてしまったので、普段使っている道具を見直す、ということを最近よくやっています。
—— まつもとさんが社会人になりたてのころに意識して取り組んでいたことが他にもありますか?
できるだけ仕事を早く終わらせて、自分の環境を整備する時間を作るようにしていましたね。世の中には開発のためのいろいろな道具がありますが、どれがいいのかは試しに使ってみないと分からない。仕事の空き時間ができるとすぐに、どちらのツールがいいのか比較検討したり、ないなら自分で作ってみたりということをやっていました。
まつもとゆきひろ氏が「生涯プログラマー」でやっていきたい若手に贈る3つの言葉
まずは、最近一番使っている道具であるAndroid Studioを見直してみました。
その結果、新たな便利機能を知ったり、改めて便利さを認識できたりしたので、メモがてら少しまとめてみました。
※ 特によく使う機能に関しては をつけてみました。
※ 以下すべて環境はMacです。
Code
Generate
command + n
GetterやSetter、equals、toStringなど、よく使うものを良い感じに自動生成してくれます。
GetterやSetterの自動生成時にPrefixがつかないようにする
変数にPrefixとしてmやsをつけている場合、初期状態だと以下のように生成されてしまいます。
なので以下の設定をします。
Preferences(command + ,) > Code Style > Java > Code Generation
Name Prefixのところに、使用するPrefix(mやs)を入力しておきます。
Override Method
ctrl + o
Surround With...
option + command + t
範囲選択した箇所に対して、try/catchやifで囲います。
Unwrap/Remove...
shift + command + fn + delete
「Surround With...」の逆でtry/catch等を外します。
Completion Basic
ctrl + space
お馴染みの補完機能です。Macの場合、Spotlightのショートカットと被るため、そのままだとショートカット経由では使えません、、、
(Android StudioかSpotlightの設定を変更する必要があります)
Insert Live Template...
command + j
最初からいくつかプリセットされていますが、自分で追加することもできます。
Preferences(command + ,) > Live Templates
Surround with Live Template...
shift + command + j
範囲選択した箇所に対して使用する、囲うタイプのテンプレート機能です。
Comment with Line Comment
command + /
お馴染みのコメントアウト機能です(//)。
Comment with Block Comment
shift + command + /
お馴染みのコメントアウト機能です(/* */)。
Reformat Code...
option + command + l
コード整形機能です。以下の設定に基づき、範囲選択した箇所を整形してくれます。
Preferences(command + ,) > Code Style
Optimize Imports...
ctrl + option + o
import機能です。自分の場合は、宣言時に勝手に実行されるように設定しています。
Preferences(command + ,) > Editor > Auto Import
View
Parameter Info
command + p
カーソルがメソッドの上にある状態で実行すると、引数の種類を表示してくれます。
Quick Document
F1
カーソルの位置にある対象のドキュメントをpopupで表示します。
External Document
shift + F1
カーソルの位置にある対象のドキュメントをブラウザで表示します。
Jump to Source
command + ↓
or
command + b
カーソルの位置にある対象が定義されている箇所にjumpします。
Recent Files
command + e
Enter Presentation Mode
View > Enter Presentation Mode
以下のようにコードだけを全画面表示します。ピンチイン、ピンチアウトで拡大縮小もできます。
TODO
View > Tool Windows > TODO
Edit(IdeaVim)
コピペやファイル内検索など基本的なエディター操作です。
初期状態でも基本的な機能は備わっているのですが、自分の場合はIdeaVim という、Vimなキーバインドを再現してくれるPluginを導入しています。
Preferences(command + ,) > Plugins
↑からIdeaVimを検索してインストールしてください。
IdeaVimは.vimrc的な設定ファイルも使用することができます。
使用する場合はホームディレクトリに .ideavimrc というファイル名で設置します。
Android StudioのショートカットとIdeaVimとがコンフリクトしてしまうものがいくつかあり、どちらを優先するかを、設定することができます。
Preferences(command + ,) > Vim Emulation
基本的なエディター操作はIdeaVimでOKなのですが、Replaceが少し使いづらく感じたので、それだけショートカットを覚えました。
Replace
command + r
Navigate
Symbol...
option + command + o
Toggle Bookmark
F3
ソースコードにブックマークします。
ブックマークした箇所でもう一度実行するとブックマークを解除します。
ブックマークしておくと、次で紹介する「Show Bookmarks」機能からjumpしたりできます。
Show Bookmarks
command + F3
Test
shift + command + t
↑のコマンド実行時に参照しているクラスに対応するテストコードのひな形を作ります。
既にテストコードが存在している場合はjumpできます。
File Structure
command + F12
クラスのメンバーを一覧表示します。選択するとjumpします。
Type Hierarchy
ctrl + h
※ IdeaVimを有効にしているとコンフリクトして動作しないので、ショートカット経由で実行したい場合は、IdeaVimの設定を変更してください。
(設定方法については、本記事の「Edit」の項目で説明しています)
Next Highlighted Error
F2
エラーの出ている行にjumpします。shift + F2で逆方向。
Analyze
Inspect Code...
Analyze > Inspect Code...
コードをInspectしてくれます。
Inspection関連は以下の記事が詳しいです。
AndroidStudioのInspectionでコードチェックを楽にしてみた。
Analyze Data Flow to Here
Analyze > Analyze Data Flow to Here
Analyze Data Flow from Here
Analyze > Analyze Data Flow from Here
Refactor
Refactorにも便利そうな機能がたくさんありそうなのですが、まだ自分の中でコントロールできる感じではないので、Renameくらいしか、まともに使ってないです、、
(勝手に生成してくれる分には良いのですが、勝手に変更されるのはちょっと怖い、という感じです、、)
Rename
shift + F6
Tools
この項目だけで別の記事が書けそうな気もするので、簡単に紹介できそうなものだけ紹介します。
Generate JavaDoc...
Tools > Generate JavaDoc...
項目をポチポチ選択するだけで、JavaDocを生成できます。
Open Terminal...
Tools > Terminal...
Android Studio内でTerminalを開くことができます。
VCS
gitはコマンド派のため、ほとんど使っていません。
もしかしたら便利機能があるかもなので、気が向いたら使ってみるかもしれません。
Window
Split Vertically
Window > Editor Tabs > Split Vertically
Split Horizontally
Window > Editor Tabs > Split Horizontally
その他
Search Everywhere
shift*2(2回素早く押す)
Classやメソッド名だけでなく、Android Studioの設定やら機能までもが検索できます。
Postfix Completion
以下の記事が詳しいです。
AndroidStudioのPostfix Completionで爆速コーディング
JavaDocコメントの雛形を生成
/** を入力した後にenter
以下のようなJavaDocコメントの雛形を生成してくれます。
Color Themeの変更
Color Themes にたくさんあるので、気に入ったものをimportします。
File > Import Settings...
Find in Path...
shift + command + f
Quick Fix
option + enter
お馴染みの、Quick Fix機能です。
Project tool windowの開閉
command + F1
Project tool windowを開閉できます。
Project tool window内での検索
Project tool windowにフォーカスを当てた状態で、文字を入力すると検索できます(展開されているディレクトリのみ)。
折りたたみ機能を無効にする
個人的に好きではない、デフォルトで有効になっているCode Folding(折りたたみ機能)を無効化します。
Preferences(command + ,) > Editor > Code Folding
Project Template
ProjectのTemplateは自前で作ることができるようです。
以下の記事が詳しいです。
Android Best Practices のディレクトリ構成を作れるテンプレート作った
メモリプロファイラ
Tool系の話ですが、Android Studio 1.3からメモリプロファイラが新しくなったようです(自分はまだ試せていません)。
ショートカットが覚えられない
CheatSheet が便利です。
commandを長押ししているだけで、使用しているソフトウェアのCheatSheetが表示されます。
さいごに
初めてAndroid Studioを使い出した頃は、「GradleでAndroidアプリをビルドできる不安定で癖の強いエディター」くらいにしか、思ってなかった気がしますが、慣れてくるとかなり快適です。
自分は普段Web開発をするときは、普通にVimを使っているのですが、現在はWebStorm or 他のIDEA製品の導入を考えている程に、Android Studioが馴染んてきた感があります。
やはりIDEは便利で、Vimで同じだけの機能を持たせようと思うと、相当な茨の道な気がしますし、開発時のスイッチングコストが小さくなりそうなのも魅力的です。
ちょっと脱線しましたが、Android Studioには、まだまだ便利な機能がたくさんありそう(追加されていきそう)なので、冒頭で述べた、まつもとゆきひろさんのインタビューのように、今以上に使い倒していきたいと思います。