プログラミング

Visual Studio CodeとIntelliJ IDEAを比較してみた

jp

2020年1月よりMMMに入社いたしました、関口と申します。
よろしくお願いいたします。
全社員があだ名で呼び合う制度に則って、社内ではJPと呼ばせてもらっています。

背景

入社以来、Golangでバックエンドの開発を行っています。
当初はVisual Studio Code(以下VS Code)をエディターとして利用していましたが、途中からIntelliJ IDEA(以下IntelliJ)に移行しました。

今回は自身のIntelliJ学習も兼ねて、今まで使っていたVS CodeとIntelliJの一部比較をしてみようと思います。
※以下あくまでも個人の比較感想です。

探索

たとえば、既存の機能に追加や修正を加える実装を行う際にまずはコードを追って調査する場合があると思います。(とくに他の人が書いたコードの場合。)
VS Code、IntelliJ共に関数を辿っていく機能がもちろんですがあります。

VS Codeの場合はGo to ReferencesFind All Referencesを利用します。
VS Code

IntelliJではFind UsagesHierarchyを利用します。(画面はFind Usages
IntelliJ

自分が元々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で検索できます。
全文検索
command palette

機能としてはお互い遜色ない感じです。ただ全文検索に関してはIntelliJのほうが余計なタブを開かず広いスペースで調べられる分、使いやすい気がしました。

Terminal

VS Code使用時にはいつもVS Code内のターミナルを使っていました。
同様にIntelliJに移行してから最初は内蔵のターミナルを使用していたのですが、
ソースコミット時に git commit -m "xxx"とメッセージを書いているときにたとえばよそからコピペしたものを貼り付けると勝手に改行してしまうことがあります。
なのでターミナル操作は現在では基本iTerm2を使うことにしています。

Git操作

git blame

git blameのような操作をIntelliJでは行番号が表示されてるとこを右クリック -> [Annotate]選択で可能です。
IntelliJ

VS CodeではたとえばGitLensのようなプラグインを入れることで可能になります。
VS Code

git diff

ファイル差分はIntelliJのVersion Control -> Local Changesが結構便利です。
差分の緑色にフォーカスを当てて鉛筆ボタンをクリックもしくは⌘↓でファイル編集画面を開くことができます。
またそんなことをしなくても、Local Changesの枠内で直接編集も可能です。
IntelliJ

VS Codeでもエディターから差分を確認・編集できます。
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の導入はあり

という感じでしょうか。
比較軸としてまだまだたくさんの観点があると思うので、またいつか機会があれば調べてみたいです。

調べている過程でこの記事では書いていないことも含めてたくさんの便利機能が見つかりました。
便利そうな機能はどんどん使っていきたいです。

参考サイト

AUTHOR
jp
jp
記事URLをコピーしました