Visual Studio CodeとIntelliJ IDEAを比較してみた
2020年1月よりMMMに入社いたしました、関口と申します。
よろしくお願いいたします。
全社員があだ名で呼び合う制度に則って、社内ではJPと呼ばせてもらっています。
背景
入社以来、Golangでバックエンドの開発を行っています。
当初はVisual Studio Code(以下VS Code)をエディターとして利用していましたが、途中からIntelliJ IDEA(以下IntelliJ)に移行しました。
今回は自身のIntelliJ学習も兼ねて、今まで使っていたVS CodeとIntelliJの一部比較をしてみようと思います。
※以下あくまでも個人の比較感想です。
探索
たとえば、既存の機能に追加や修正を加える実装を行う際にまずはコードを追って調査する場合があると思います。(とくに他の人が書いたコードの場合。)
VS Code、IntelliJ共に関数を辿っていく機能がもちろんですがあります。
VS Codeの場合はGo to References
やFind All References
を利用します。
IntelliJではFind Usages
やHierarchy
を利用します。(画面はFind Usages
)
自分が元々Eclipseで開発していた経験があるせいかもしれませんが、
VS Codeは参照元が1つ余計に参照される点や、今開いているファイルの上に表示されてしまうのがちょっと気になります。
他にも、最初の関数まで遡れるcall Hierarchy
のような機能がVS Codeにはなさそうでした。
検索
IntelliJは検索機能が色々あります。
有名どころでは、
- ファイル横断テキスト検索(Mac: Ctrl + Shift + F)
- 何でも検索(Mac: Shift2回連打)
- コマンド検索(Mac: Command + Shift + A)
あたりはIntelliJ歴約2週間の自分でも重宝しています。
VS Codeにも全文検索、またコマンド検索にcommand palette
(Mac: Command + Shift + P)があります。
プロジェクト内のファイル名で検索したいときはCommand + T
で検索できます。
機能としてはお互い遜色ない感じです。ただ全文検索に関してはIntelliJのほうが余計なタブを開かず広いスペースで調べられる分、使いやすい気がしました。
Terminal
VS Code使用時にはいつもVS Code内のターミナルを使っていました。
同様にIntelliJに移行してから最初は内蔵のターミナルを使用していたのですが、
ソースコミット時に git commit -m "xxx"
とメッセージを書いているときにたとえばよそからコピペしたものを貼り付けると勝手に改行してしまうことがあります。
なのでターミナル操作は現在では基本iTerm2を使うことにしています。
Git操作
git blame
git blameのような操作をIntelliJでは行番号が表示されてるとこを右クリック -> [Annotate]選択
で可能です。
VS CodeではたとえばGitLensのようなプラグインを入れることで可能になります。
git diff
ファイル差分はIntelliJのVersion Control -> Local Changes
が結構便利です。
差分の緑色にフォーカスを当てて鉛筆ボタンをクリック
もしくは⌘↓
でファイル編集画面を開くことができます。
またそんなことをしなくても、Local Changes
の枠内で直接編集も可能です。
VS Codeでもエディターから差分を確認・編集できます。
他にもエディター上でのコンフリクト解消やブランチの切り替え機能はVS Code、IntelliJどちらでも可能です。
こちらも機能的には大差ないですが、操作感的にはIntellJな気がしなくもないです。
値段
IntelliJはCommunity版、Ultimate、All Products Packの三種類があります。
Community版は無料で使えますが、筆者は欲張って現状のweb開発で使われる言語を網羅した(C/C++やSwift, .Netを除く)有料のAll Products Packを使っています。
ありがたいことに業務効率化グッズ購入補助制度を利用して実質タダで使わせてもらっています。
VS Codeはもちろんタダです。
その他便利そうな機能(IntelliJ)
Open file in new window
Mac: Shiftを押した状態でproject内のファイルを選択
別モニターでファイルを参照用に開いておきたい場合に使えそうです。
最近開いたファイル履歴
Mac: Command + E
これも便利な気がします。
結論
- 機能性でいうとVS Codeで大体カバーされている
- より操作性・効率性を求めるならIntelliJ IDEAの導入はあり
という感じでしょうか。
比較軸としてまだまだたくさんの観点があると思うので、またいつか機会があれば調べてみたいです。
調べている過程でこの記事では書いていないことも含めてたくさんの便利機能が見つかりました。
便利そうな機能はどんどん使っていきたいです。
参考サイト
- [忙しい人のためのIntelliJ IDEAショートカット集(´-`)](https://qiita.com/yoppe/items/f7cbeb825c071691d3f2)
- [意外と知らないIntelliJ IDEAのGit管理機能いろいろ(´-`)](https://qiita.com/yoppe/items/fd03607d4d4f191d32dd)
- Visual Studio Code備忘録
- IntelliJ IDEA Pro Tips