エンジニアHubPowered by エン転職

若手Webエンジニアのための情報メディア

IntelliJ IDEAをもっと便利で使いやすく! つまずきがちな設定や、便利な機能を細かに解説します。

Javaの統合開発環境であるIntelliJ IDEAの人気が高まっています。興味はある方や使い始めたばかりの方に向けて、つまずきがちなポイントや、地味だけど便利な機能などを、IntelliJ IDEA関連の著作も多い今井勝信さんが紹介します。

IntelliJ IDEAをもっと便利で使いやすく! つまずきがちな設定や、便利な機能を細かに解説します。

IntelliJ IDEA(インテリジェイ・アイデア)は、JetBrainsが開発・販売しているJavaの統合開発環境(IDE)です。最初に登場したのは2001年と古く、しばらくマイナーIDEとしてひっそり存在していましたが、ここ数年で知名度も上がってきました。

近年の人気も相まって、IntelliJ IDEAの紹介記事や“最初のとっかかり”的な入門記事は数多く見かけるようになりました。機能紹介や初心者向けのHow Toはそちらにゆずり、本記事では細かすぎて、もしくは面倒くさすぎて、入門記事ではあまり触れられない部分を取り上げます。

ちょっとややこしい製品体系やライセンスの話、そして継続的に情報収集するために役立つ情報源をはじめに紹介します。その後で、IntelliJ IDEAを使い始めたときにつまずきがちなポイントや、地味だけど便利な機能を紹介します。

本記事のターゲットは、IntelliJ IDEAに興味はあるけれどまだ使っていない人や、使い始めてみたけど今ひとつ良さが分かない方です。すでにIntelliJ IDEAを活用している人には耳タコな内容かもしれませんが、もしかしたら新たな気づきがあるかもしれません。

記事を読み進めていただく前の注意点

本稿は、Windows版のIntelliJ IDEA 2019.2.3 Community Editionを使って試した結果を基に執筆しています。文中によく「設定画面の~」や「~を設定」と設定に関する説明が登場しますが、この設定画面(Settingsダイアログ)の名称は、Mac版ではPreferencesです。

開き方も異なっており、WindowsではFileメニュー→Settings、Mac版はアプリケーションメニュー→Preferencesです。Welcome画面ではメニューバーが表示されていないので、画面右下のConfigureからSettings(Mac版はPreferencesを選んでください。

welcome-settings

IntelliJ IDEAは有償のIDE

前述したとおり、IntelliJ IDEAはJavaの統合開発環境です。昔はよくEclipseNetBeansと比較されましたが、最近ではVisual Studio Codeと比べられることが多いようです。

こういったIDEやテキストエディタとの最大の違いは、有償であることです。有償であることはデメリットに捉えられがちですが、以下のように有償ならではのメリットもあります。

  • アップデートが頻繁にある
    • バグ対応が早い
    • OSやSDKなど周辺環境の対応も早い
  • 標準構成で十分使える
    • 追加のプラグインをほぼ必要としない
    • 追加するとしても公式プラグインで網羅できる

開発ツールは無償なのが当たり前という風潮のなか、名だたる無償ツールたちと競い続けて20年近くも生き残っているのも、有償であることのメリットを証明しているのかもしれません。

IntelliJ IDEAには、一説に「850%の費用対効果(ROI)がある」そうですが、筆者が10数年使い続けた経験と照らし合わせても、あながち間違っていないと思っています。

IntelliJプラットフォームのIDEたち

IntelliJ IDEAはJavaを主力に据えたIDEですが、開発元のJetBrainsではJava以外の言語向けのIDEも提供しています。これらのIDE群は、もともとIntelliJ IDEAが持っていた機能を切り出したり、IntelliJ IDEAをベース(IntelliJ プラットフォームと呼ぶ)に開発されたりしているため、どのIDEが何の言語をサポートしているのか少々分かりづらいです。

次の表は、IntelliJプラットフォームIDEの製品と、それぞれが標準でサポートしている言語の一覧です。IntelliJ IDEAに右端のプラグインを追加することで、GoLand、PhpStorm、PyCharm、RubyMineと同等の言語をサポートできます(WebStormとDataGrip相当の機能は標準で組み込まれています)

製品 サポートする言語 対応プラグイン
IntelliJ IDEA Java、JavaScript、Groovy、Kotlin、SQL
AppCode Objective-C、Swift、JavaScript、SQL なし
CLion CC++、JavaScript、SQL なし
DataGrip SQL (標準)
GoLand Go、JavaScript、SQL Goプラグイン
PhpStorm PHP、JavaScript、SQL PHPプラグイン
PyCharm Python、JavaScript、SQL Pythonプラグイン
Rider C#、JavaScript、SQL なし
RubyMine Ruby、JavaScript、SQL Rubyプラグイン
WebStorm JavaScript(SQLサポートなし) (標準)

ぱっと見はIntelliJ IDEAが最もお得な感じですが、AppCode(Swift)、CLion(C/C++)、Rider(C#)相当の言語サポートはできません。より詳しい情報は、JetBrainsの製品ページで調べることができます。

JetBrainsが提供するすべての開発者ツールと製品

Googleが提供しているAndroid Studioも、IntelliJプラットフォームのIDEです。Android StudioはGoogleが管理しているため、バージョン表記やリリースサイクルが、このセクションで紹介するものとは異なります。

有償と無償

JetBrainsが提供しているIDEはだいたい有償ですが、IntelliJ IDEAとPyCharmには無償版(Community Edition)があります。無償版と区別するため、有償版をそれぞれIntelliJ IDEA Ultimate Edition、PyCharm Professional Editionと呼びます。

有償版と無償版の違いをざっくり説明すると「サーバサイドの開発支援機能がない」ことです。IntelliJ IDEAでは、Tomcatなどのアプリケーションサーバや、Spring Frameworkなどの主だったフレームワークの開発支援がありません。JavaScriptサポートもなく、できることがかなり限られています。

Kotlinだけやりたい」「Scalaがやりたい」など、目的がハッキリしているなら無償版でもかまいませんが、そうでなければ有償版を使った方がよいでしょう。

バージョン表記とリリースサイクル

バージョン表記はYYYY.R(.m)形式で「2019.1」とか「2019.2.1」のように表します。最初のYYYYは見てのとおり「年」で、それ以外の意味は以下のとおりです。

表記 説明
R その年のメジャーリリース回数
m マイナーリリース回数

このような表記にした理由は、Rider、WebStromなどのIDEがどのバージョンのIntelliJ IDEAをベースにしているか分かりやすくするためです。例えば、Rider 2019.2とIntelliJ IDEA 2019.2は、同じIntelliJプラットフォームだということが分かります。

メジャーリリースは3~4カ月の頻度で行われます。「2019.1」から「2019.2」はマイナーアップデートに見えますが、別のメジャーバージョンです。メジャーバージョンが異なると、内部的には別のアプリケーションとして扱います。

マイナーリリースはバグ対応が主で、リリース頻度は不定期です。早いときは1週間くらいでリリースされます。

これ以外にも、最新バージョンには早期アクセスプログラム(Early Access Program、EAP)という開発バージョンがあります。EAPは次のメジャーリリースに向けた新機能の試作などを含む、不安定なバージョンです。最新版だと思ってほいほい付いていくとヒドい目に遭うので気をつけてください。

ライセンスの種類

有償版のライセンスは、年更新・月更新のサブスクリプション方式です。12カ月連続で使用すると、サブスクリプション期限が切れてもライセンス購入時の最新バージョンの使用権が残るので、買い切り方式の特徴も持っていますフォールバックライセンス

ライセンスには企業向けのコマーシャルライセンスと個人向けのパーソナルライセンスの2種類があります。パーソナルライセンスは、会社の経費で買ってもらえない開発者の救済を目的にしているので、コマーシャルライセンスと比べるとかなりお安くなっています。

お安いといっても1万円以上するので、ためらうには十分な値段です。30日の試用期間もあるので、自分にとって値段分の価値があるかどうかを判断してから購入を決意した方がよいでしょう。ライセンスは、JetBrainsや日本代理店のサムライズムから購入できます。

「有償、有償」と繰り返されてウンザリしている人もいるかもしれませんが、無償で使えるライセンスもいくつかあります。ひとつは学生や先生向けの教育ライセンス、もうひとつはオープンソースプロジェクトの開発者向けのオープンソースライセンスです。申請条件・更新頻度・適用範囲など、いくつか制限がありますが、条件に該当する人は申し込んでみるのもよいでしょう。

ライセンスは、IDEごとに購入します。前述したとおり、IntelliJプラットフォームのIDEは数多くあるので、どれを購入すればいいのかが悩みのタネになります。使う言語が多岐にわたり、どれかひとつに絞り切れない方は、JetBrainsのIDEが全て使えるAll Products Packを検討してみてください。

頼りになる情報源 ── 日本語でも読める公式サイトなど

JetBrainsが提供している情報が一次情報源です。ここまでで紹介したJetBrainsのリンク先に訪れた人はお気づきかと思いますが、JetBrainsの公式サイトは日本語で読めます1。「海外製品なので英語は苦手」と臆しているなら、それは杞憂です。

主だった機能は、製品紹介ページの「新機能」や「機能一覧」で確認できます。これはスクリーンショットや動画も豊富なので、見ているだけでも楽しめます。

IntelliJ IDEA:JetBrainsによるプロ開発者向けJava IDE

JetBrainsのサイトはほぼ日本語対応されていますが、記事執筆時点でサポート情報はまだ英語のままです。日本語によるサポート情報が必要なら、サムライズムのサイトを参照するとよいでしょう。

JetBrains – 株式会社サムライズム

公式ヘルプ

IDEそのものの使い方や機能の説明については、ヘルプを読むのが最も正確で分かりやすいでしょう。ヘルプに関しては、幸いなことに公式の日本語版もあります(日本語化の詳細はこちらを参照)

IntelliJ IDEAをインストールする - 公式ヘルプ | IntelliJ IDEA

ヘルプでは、下図のようにヘッダのShortcuts:をクリックすると、IDEにプリセットしてあるキーマップを選択できます2。ここを各自が使っているキーマップに変更すれば、ヘルプ本文に記載されているショートカットキーもそのキーマップに準じます。

shortcuts

本記事では、極力ヘルプへのリンクを貼り付けるので、この機会にヘルプに慣れ親しんでみるのもよいでしょう。

日本語ヘルプは便利なのですが、全て日本語になっているためメニューや設定項目の対比がいささか面倒です。そこで、こんなブックマークレットを作ってみました。

JetBrains⇔Pleiades

上のリンクをブックマークバーにドラッグすると、英語ヘルプと日本語ヘルプを簡単に切替えることができます(ソースは次のようになっています)

if(location.host == 'www.jetbrains.com') {
  location.href = location.href.replace('www.jetbrains.com', 'pleiades.io');
} else if(location.host == 'pleiades.io') {
  location.href = location.href.replace('pleiades.io', 'www.jetbrains.com');
}

日本語の書籍

数は少ないのですが日本語の書籍がいくつか出ています。せっかくの機会なので、筆者も関わった2冊を紹介させていただきます。

  • サムライズムの山本裕介@yusukeさんとの共著
  • 同社で定期的に行っているハンズオンの内容をまとめた入門書籍
  • 前半は入門者向けで、後半はUltimate Edition固有の専門的な内容

  • Android Studioと冠しているが、実体はIntelliJ IDEAのリファレンスガイド
  • おそらく世界で唯一のIdeaVIMの解説本

なお、書籍は情報がまとまっていて便利ですが、出版日から時間が経過するほど内容が古くなっていくのが難点です。ご自身が求めている情報が載っているか十分吟味して、購入するかどうか決めてください。

なぜなら、IntelliJ IDEAはバージョンアップのたびに、メニューや設定項目の名称や配置がこっそり変わることがままあるからです(ヘルプが「最も正確」と前述した理由のひとつ)

その他の情報源

よく読むとだいたいのことは書いてあるので、ヘルプや書籍をじっくり読むのは楽しいのですが、多くの人は「IDEの操作・機能を知りたい」のではなく「IDEを使って快適に開発したい」ので、IDEのことを調べるのに時間をかけたくないのが実状でしょう。特に「できないこと」はヘルプには書いていないので、調べるのは骨が折れます。

そのような人たちに最も適しているのは、詳しい人に聞くことです。例えば、Twitterで「IntelliJ」というキーワードを付けて知りたいことを気軽につぶやくといいでしょう。私を含めたIntelliJ IDEAユーザはお節介が好きなので、何かしら反応してくれます。

IntelliJ IDEAのインストール

このセクションからは、IntelliJ IDEAの具体的な特徴や機能を紹介していきます。まずはインストールです。インストール方法は何通りかありますが、Toolbox Appを使う方法をおすすめします。

JetBrains Toolbox App:ツールを簡単に管理

Toolbox Appは、Windowsのタスクトレイや、Macのメニューバーに常駐するアプリケーションランチャーです。このツールを介して、IntelliJプラットフォームIDEのインストールやアップデートができるため、何かと便利です。

toolbox-app

下図のようなアプリケーションごとの設定画面(歯車アイコンのSettings)からは、バージョンを固定する・アップデートを安定版のみにする、などが設定できます。

gear

インストールした後の初回実行時に動くセットアップウィザードは、デフォルトを選択していけば特につまずくことはないでしょう。セットアップ後に気をつける点を、いくつか列挙しておきます。

開発環境の確認と設定

一般的に統合開発環境といえば「それさえインストールしておけば、後は何もいらない」というイメージがあるかもしれませんが、IntelliJ IDEAに関しては当てはまりません。

IntelliJプラットフォーム全般に言えるのですが、このIDEは対象となる開発言語のエコシステムに乗っかることを前提にしているところがあります。つまり、SDKやビルドツールなど、すでに(このIDEがなくても)開発できる環境があった上で、それらを統合できる環境を用意する役割を担っているといった感じです。

平たくいえば、インストールしただけではJavaの開発環境はできあがっていません。次の3つが別途必要です。

  • JDK(必須)
  • ビルドツール(必要に応じて)
  • バージョン管理システムのコマンド(必要に応じて)
実を言うと、最近のIntelliJ IDEAは、はじめからJDKが設定済みなのでインストール直後からすぐに開発ができます(2019.2.3のWindows版で確認済み、Mac版では未設定)

JDKの確認と設定

IntelliJ IDEAにJDKが設定済みかどうかは、以下の手順で確認できます。

  1. Welcome画面の右下のConfigureからStructure for New Projectsを選ぶ
  2. Project StructureダイアログのPlatform SettingsSDKsにJDKが設定されているかを確認する
project-structure-new-project

JDKが設定されていなければ、ヘルプの手順を参考に、各自で設定してください。

Windows版
SDKsにJava 11が登録済みのはずです。これはJBR(JetBrains Runtime)と呼ばれるOpenJDK互換のJDKで、IntelliJ IDEAの起動に使われます。不満がなければそのままJBRを使ってもよいのですが、気になる人はOracle JDKなりOpenJDKなりを設定した方がよいです。
Mac版
同じようにJBRがバンドルされているので、設定さえすれば利用できます。JBRは、IntelliJ IDEAアプリケーション内のContents/jbr/Contents/Homeにあります。
mac-add-jbr

「とりあえずJavaで開発してみたい」程度であれば、ここまで(JDKが設定済み)で準備完了です。JDKそのものが未インストールの場合は、JDKを入手するところから頑張ってください。このあたりが、初心者の最初の挫折ポイントになります。

Toolbox AppからインストールしたMac版IntelliJ IDEAは、<HOME>/Library/Application Support/JetBrains/Toolbox/apps/の下にあります。Macのファイルダイアログでライブラリフォルダへ移動する方法が分からない場合は、⇧ ⌘ Gを押してください。図のように移動したいフォルダを直接指定できます。

mac-file-dialog

ビルドツールやバージョン管理システムの準備

ここは少し踏み込んだ内容なので、読み飛ばしても大丈夫です。

プロジェクトのビルドにビルドツールを必要とするかどうかはIDEの利用と関係がないため、要否を一概に決めることはできません。今回の記事では「気になる人や必要な人だけ別途インストールしていただく」程度の理解で十分です。

ビルドツールよりも、バージョン管理システムの方が必要性は高いでしょう。IntelliJ IDEAから利用するには、Gitを使うのであればgitコマンド、Subversionを使うならsvnコマンドが別途必要になります。「そんなのIDEに内蔵されているんじゃないの?」と思われるかもしれませんが、前述したとおりIntelliJ IDEAは周辺のエコシステムを活用するため、入っていません。

これらのコマンドにパスPATHが通っていれば、そのまま使えるようになります。そうでなければ、ヘルプGitSubversionを参考にして設定しましょう。初心者には第2の挫折ポイントになると思いますが、成長の機会だと思ってがんばってください。

IntelliJ IDEAが極力独自実装を控え、既存のエコシステム(ここではgitsvnなどのネイティブコマンド)を利用するのは、周辺ツールとの互換性を最大限に保とうとする思想からです(餅は餅屋に任せる)

(必要があれば)プロキシサーバの設定

最近のツールはインターネットに接続していることを前提としているものが多く、IntelliJ IDEAも例に漏れません。職場や学校など、インターネットに接続するのにプロキシサーバを経由する必要がある場合は、IntelliJ IDEAにもその設定をします。

プロキシサーバの設定は、設定画面のAppearance & BehaviorSystem SettingsHTTP Proxyにあります。

なお、初回起動時のセットアップウィザードの最後に「おすすめプラグインの設定」があるのですが、プロキシサーバを介さないとインターネットに接続できない環境では、なすすべなく見送るしかありません。あきらめてください。

補足がひとつあります。このプロキシサーバ設定は、IntelliJ IDEAにのみ適用されます。IntelliJ IDEAが内部的に使っているビルドツール(mavenやgradleなど)や、Gitなどバージョン管理システムのコマンドには適用されません。それぞれのツールに応じたプロキシサーバの設定を行ってください。

(必要があれば)ユーザインターフェースの日本語化

Eclipseの日本語化で有名なPleiadesプラグインはIntelliJ IDEAにも対応しているため、これを適用することでユーザインターフェースやヘルプが日本語化されます。あまり知られていないように思えるのですが、これが公式の日本語化の方法です。

Pleiades - Eclipse、IntelliJ などの日本語化プラグイン

ひとつ注意点があります。IntelliJ IDEAをインストールした直後に日本語化すると、初回のセットアップウィザードがスキップされます。日本語化は、セットアップウィザードの設定が済んでから適用してください。

Pleiadesプラグインのインストールには、IntelliJ IDEAのパスを指定します。Toolbox Appでインストールした場合、パスはちょっと分かりにくい場所にあります。

Windows
C:\Users\<ユーザ名>\AppData\Local\JetBrains\Toolbox\apps\の下のbinディレクトリにあるidea64.exe
Mac
<HOME>/Library/Application Support/JetBrains/Toolbox/apps/の下のIntelliJ IDEA CE

WindowsのAppDataディレクトリは隠しディレクトリなのですが、下図のようにファイルダイアログに直接パスを指定すれば移動できます(Macはファイルダイアログで⇧ ⌘ G

select-idea-application

英語より日本語の方が抵抗感が薄れるのは確かですが、いくつか不便さもあるので、日本語化するかは各自の判断に任せます。代表的な不便さは、以下の3点です。

  • Find Actionで検索するアクション名が日本語になり、英語で検索できない
  • 日本語のメニュー名や設定項目名があまり知られていないため、ネット上の情報の検索性が低い
  • Git操作のたびに、ログのタブが無尽蔵に増える(2020年1月10日修正:最新版のPleiadesでは修正済みでした。詳しくはcypher256/pleiades.io Issue #29を参照してください)

いずれ解消されるものもあると思うので、Pleiadesの問題トラッカーをチェックしておくとよいでしょう。

知っておいてほしいIntelliJ IDEAの特徴

IntelliJ IDEAには、一般的なアプリケーションとは異なる特徴がいくつかあります。もともとはプログラマに対する親切さや気遣いからそうなっているのですが、ときに初見殺しと受け取られることがあります。

利用者が悪印象のみを受け、利用を断念してしまうのは正直もったいないことです。どんなものにも理由や原因があります。この場を借りて、対処法を教えましょう。

残念なデフォルトフォント

IntelliJ IDEA 2019.2.3のWindows版では、Consolasがデフォルトフォントに設定されています。一見すると何も問題ないようですが、下図のように斜体Italicで全角文字が表示されなかったり、全角文字と半角文字の文字幅が微妙にズレたりします。

font-problem

まず、これを直しましょう。

エディタのフォント設定は、設定画面のEditorFontです。ここのFontで、デフォルトフォントを指定します。Monospacedあたりが無難ですが、見栄えがよくないのが難点です。できればRicty Diminishedあたりを追加して、オシャレな気分になりたいですね。

font-no-problem

デフォルトフォントをMonospacedやRicty Diminishedに変更すれば、先ほどの問題は上図のように解決します。使ってみたいフォントが他にある場合は、各自で調整してみてください。欧文フォントを試してみたいならば、Fallback fontに日本語フォントを指定しておくとよいでしょう。

Mac版のデフォルトフォントはMenloですが、こちらも微妙にズレているので、気になるならばRicty系に変更しておいた方がよいでしょう。

空白文字が見えない

「空白なのだから見えなくて当たり前なのでは?」と思った人は甘い、大甘ですね。気にしない人はまったく気にならないけれど、気にする人は出来ないと落ち着かないのが「空白文字の表示」です。

デフォルトでは非表示になっていますが、設定画面のEditorGeneralAppearanceにあるShow whitespacesをチェックすることで、下図のようにちゃんと空白文字も表示します。海外製のアプリケーションなのに全角スペースを区別してくれるところは、好感が持てます。

show-whitespaces

表示できる空白文字は、半角スペース・全角スペース・タブの3種類のみで、改行(EOL)やファイル末尾(EOF)は表示できません。

色が弱くて見えづらいときは、EditorColor SchemeGeneralText/Whitespacesで、空白文字の色設定を変更してください。

書いた覚えのないコードが見える

例えば、下記のようなコードをIntelliJ IDEAで編集していると、

Map<Integer, String> map = new HashMap<>();
map.put(0, "value");

List<Map<Integer, String>> list = List.of(map);
long count = list.stream()
                 .flatMap(m -> m.values().stream())
                 .distinct()
                 .count();

下図のような情報が表示されます。

code-hint

このmap.putの引数の前やlistのストリーム操作の後ろに出ているのは、コードヒントと呼ばれる情報で、実際に打ち込んだコードではありません。ご覧のとおり色設定がコメントと似通っているため、存在を知らないと、便利というより迷惑に感じることが多いようです。

前者は、設定画面のEditorGeneralAppearanceShow parameter name hintsのチェックを外すと無効になります。後者は、EditorInlay HintsJavaMethod chainsのチェックです。

パラメータヒントは、存在を知っていればそこそこ便利ですが、コードを修正しようとカーソルを移動しているときが地味にストレスなので、合わないと思ったらすぐ無効にしましょう。

なお、コードヒントの色設定は、EditorColor SchemeLanguage DefaultsInline parameter hintsで変更できます。

賢すぎるBackspace

突然ですが、クイズです。下図のように「System.out~」の文頭にカーソルがあるときにBackspaceキーを押すと、カーソルは①~③のどこに移動するでしょうか?

hungry-backspace

答えは③です。IntelliJ IDEAでは、いわゆるハングリーバックスペース3がデフォルトの動作になっています。

この振る舞いに違和感を覚える人は、しっくりくる動きに変えてしまいましょう。これは、EditorGeneralSmart KeysBackspace/Unindentで設定できます。選択肢とそれぞれの意味は、以下のとおりです(筆者の好みはDisabledです)

選択肢 説明
Disabled 普通のBackspaceキーになる(①相当)
To nearest indent position インデント単位に移動する(②相当)
To proper indent position 適切なインデント位置に移動する(③相当)

かなり独特なショートカットキー

ある程度使っているとうすうす気付いてくると思いますが、IntelliJ IDEAのショートカットキーは独特の体系になっています。特にWindows版が顕著なのですが「普通、この機能はこのショートカットキーだろう」という連想が通用しないことがままあります。

例えば、多くのアプリケーションで「ウィンドウを閉じる」になっているCtrl+Wが、後述するExtend Selectionという機能に割り当てられていたり、「くり返し(Redo)」が当たり前なCtrl+Yが、Delete Lineに割り当てられています。

これはもう「郷に入っては郷に従え」なので、慣れてもらうしかありません。

さすがに悪いと思ったのか、最近のIntelliJ IDEAでは、はじめてCtrl+Yを使うと「RedoDelete Lineどっちに割り当てる?」と聞いてきます。
map-ctrl-y

どうしてもデフォルト設定が気に入らないのであれば、Keymap設定を変更して、他のキーマップに変えてしまいましょう。プリセットされているキーマップだけでなく、独自にキーマップを作成することもできます。

どのキーマップにするかは、それぞれ一長一短があるので、自分の用途に合わせて選択してください。例えば、IntelliJ IDEAの他にWebStormやRubyMineなど、複数のIDEを使い分けているのであれば、デフォルトのキーマップに慣れていた方が便利です。Windows版とMac版の両方を使う機会が多いのであれば、Mac版は「IntelliJ IDEA Classic (macOS)」にするのが無難でしょう。

Mac版のデフォルトキーマップ「Default for macOS」は「Macアプリケーションっぽいキーマップ」ですが、「IntelliJ IDEA Classic (macOS)」は「IntelliJ IDEAっぽいキーマップ」という意味で、Windows版のデフォルトに近いキーマップです。

頻繁にキーマップを変更する場合のTIPSですが、ViewメニューのQuick Switch Schemeを使うと、すぐに変更できます。Search EverywhereFind Actionで「keymap」と入力しても同じことができるので、お好みの方法でどうぞ。

quick-switch-scheme

未保存のファイルが分からない

IntelliJ IDEAで編集するファイルは、全て自動的に保存されます(オートセーブ機能)。これも他のテキストエディタやIDEからIntelliJプラットフォームに移ってきた人が、戸惑いやすい特徴のひとつです。

オートセーブのタイミングは、「コンパイルした」「プログラムを実行した」「IDEからフォーカスが外れた」などです。これは、Appearance & BehaviorSystem SettingsSynchronizationである程度は設定できますが、オートセーブ機能そのものを無効にはできません。

普通のアプリケーションで見かける未保存マーク(*)や、FileメニューのSaveやSave asがないSave Allしかない)のは、オートセーブがあるからです。セーブし忘れることから解放されますが、意図的に「保存しないこと」を編集のテクニックにしている人は戸惑うかもしれません。

どうしても未保存マークがないと落ち着かない人は、設定画面のEditorGeneralEditor TabsAppearance/Mark modified(*)をチェックすれば、表示できます。

なお、IntelliJ IDEAのオートセーブでは修正履歴もあわせて保存されているので、いつでも任意の状態に巻き戻すことができます。オートセーブの修正履歴は、VCSメニューのLocal Historyから確認できます。この機能は、Gitなど特定のバージョン管理システムと連携しなくても、有効になっています。

見た目を変えるさまざまな設定

最近はダークテーマがはやりですが、IntelliJ IDEAのDarculaテーマはコントラストがハッキリしている方ではないので、人によってはかえって見づらいかもしれません。またフォントサイズも人によって好みが分かれるでしょう。

これらの設定箇所は各所に散らばっているため、捜し当てるのが一苦労です。

テーマの変更
設定画面のAppearance & BehaviorAppearanceThemeで指定する。プリセット以外のテーマはプラグインとして提供される
ユーザインターフェースのフォントサイズ
設定画面のAppearance & BehaviorAppearanceUse custom fontをチェックして、Sizeを指定する
エディタのフォントサイズ
設定画面のEditorFont、もしくはEditorColor SchemeColor Scheme Fontで設定する。アンチエイリアスはAppearance & Behavior→AppearanceAntialiasingで指定できる

他に「見やすさ」に関する設定で、知っておくと便利なのはこのあたりです。

  • Appearance & BehaviorAppearanceAccessibility
    • Use contrast scrollbarsをチェックすると、スクロールバーのコントラストがハッキリする
    • Adjust colors for red-green vision deficiencyをチェックすると、赤緑色視覚障害の色調整が行われる(要再起動)
  • EditorGeneralMouse
    • Change font size (Zoom) with Ctrl+Mouse Wheelをチェックすると、Ctrl+マウスホィールでフォントサイズを変更できる

テーマやカラースキームに凝り出すと抜けられない沼にはまりますので、ほどほどに。

プラグインには対象バージョンの指定がある

IntelliJプラットフォームの中でも、特にプラグインが豊富なIntelliJ IDEAユーザは気にしておいた方がよいことですが、特定のプラグインには、対象バージョンが設定されています。

対象バージョンは、下図のようにプラグインのポータルサイトで確認できます。

plugin-version

この情報を気にしないでいると「IntelliJ IDEAをアップデートしたら、今まで使えていたプラグインが使えなくなった」なんてことがよく起こります。

ScalaプラグインRustプラグインなど、JetBrains公式の言語系プラグインは対象バージョンを設定している傾向が多いので、利用している人は特に気にかけておいてください。無論、時間がたてばプラグインも追従してバージョンアップされます(それまでに多少の時間差があります)

地味だけど便利な機能

以下を覚えておけば、「これぞIntelliJ IDEA」的な有名機能やショートカットキーはだいたいマスターしたようなものです。

Code Completion(コード補完)
自動補完が有効になっているので、ショートカットキーを覚える必要すらない。Postfix Completionを覚えるとドヤ顔できる
Intention Actions
「空気を読む提案」と呼ばれるサジェスト機能で、反応する場所には下線や電球アイコン(intentino blub)が付く。Language Injection(文字列リテラルやコメントに別言語を埋め込む)のトリガーでもある
Search Everywhere
クラスやファイル・シンボル・アクション・設定項目など、なんでも検索するコマンドパレット。TabキーでFind Actionなど目的別検索に移行できるので、このショートカットキーを覚えておけば十分

これらの機能は魅力的で見栄えもよいので、あちこちで紹介されています。ここでは、その影に隠れて気がつかないけど、「言われてみれば便利かも」という機能を紹介します。

カーソルのすり抜け

IntelliJ IDEAでコードを書いていくと、カッコやクォートは入力したそばから閉じカッコ・閉じクォートが自動入力されるので、図のような状態によくなります(「|」はカーソル)。さてこの場合、どうやって文末に移動してセミコロン;を入力しますか?

pass-through

カーソルキーEndキーで移動します? いくつか方法がありますが、IntelliJ IDEAらしいのは「そのまま");と入力する」です。タイプ量は減りませんが、タイピングのリズムを崩しません。

次点は、Complete Current Statementです。これも便利ですが、ショートカットキーが3つのキーコンビネーションなのが、個人的にはイマイチです。

未選択状態でCutまたはCopy

カーソルの位置はどこでもよいのですが、図のように範囲選択をしていない状態でEditメニューのCutCopyを実行すると、その行全体が対象になります。

no-select

つまり1行だけなら、行全体を選択しなくてもクリップボードへの切り取りやコピーができます。

いろいろなPaste

クリップボードの内容を貼り付ける方法にも、EditメニューのPaste以外に何種類かあります。中でもおすすめなのが、クリップボード履歴からペーストPaste from Historyです。

IntelliJ IDEAが起動していれば、他のアプリケーション上でクリップボードにコピー(またはカット)した内容も、履歴に残ります。

paste-history

残念ながら、IntelliJ IDEAを終了すると、クリップボード履歴も破棄されます。

選択範囲の拡張

EditメニューのExtend SelectionShrink Selectionを使うと、カーソル位置を起点に良い感じに選択範囲を広げ(縮め)られます。

Windows版のショートカットキーがCtrl+WShift+Ctrl+Wと片手で押しやすいのも相まって、慣れるとこれがないと困るレベルで便利です。個人的にはイチオシのおすすめ機能で、これがあるからIntelliJ IDEAを使い続けているといっても過言ではありません。

ただし、多くのWindowsアプリケーションではCtrl+Wは「ウィンドウを閉じる」として振る舞うため、これに慣れすぎると他のアプリケーションを使っているときに不幸な事件に遭いやすいのが玉に瑕です。

クリップボードとの比較

クリップボードの話ばかり続きますが、そろそろ終わりにします。

Viewメニュー、またはエディタのコンテキストメニューのCompare with clipboardで、エディタの内容とクリップボードの内容を比較できます(diffをとれる)。ちょっとした差分を確認したいときに、とても重宝します。

エディタで範囲選択した状態で実行すると、比較対象をその範囲に限定することもできます。先ほど紹介したExtend Selectionや、Scratch files/Scratch Bufferと呼ばれる一時的な編集領域を組み合わせると、用途が広がります。

どこでも使えるクイック参照

ViewメニューのQuick Definitionは実装・定義の参照、Quick DocumentationはJavadocの参照に使う機能です。エディタで使うと図のようにポップアップが表示されます(Quick Definitionの例)

quick-definition

これらの機能は、なんとなくエディタで使うものだと思いがちですが、意外なところでも機能します。例えば、ProjectツールウィンドウやSearch Everyhereの候補リストなどです。エディタを開かなくてもファイルの中身を確認できるため、ちょっと見たいときなどに重宝します。

quick-definition2

あいまいな検索

コード補完コマンド検索など、IntelliJ IDEAには検索したり候補を絞り込んだりする機会がたくさんあります。このとき入力するキーワードを完全一致させる必要はありません。頭文字や部分一致する単語などを適当に入力するだけで、候補を絞り込めます。

例えば「ArrayIndexOutOfBoundsException」というクラスを検索しようと思ったなら「arrayindexbounds」や「boundsexception」、極端な例では「aiob」と入力するだけで絞り込むことができます。

navigate-class

このゆるい絞り込みはコード補完でも効きますが、コード補完のときは頭文字は大文字で入力してください。絞り込みのクセに慣れるまでちょっと時間がかかりますが、慣れるとタイプ量が減って楽になります。

code-completion
コード補完のときは頭文字を大文字にしないとダメなのは、設定画面のEditorGeneralCode CompletionMatch caseがチェックしてあるからです。

おわりに

「製品体系やライセンス体系が理解できた」「使いづらいなと思っていた部分が解消できた」など、この記事が少しでもお役に立てたら幸いです。また、IntelliJ IDEAがちょっと気になっていたけど遠慮していたという方は、これを機会にぜひ使ってみてください。

デモ的な要素が強いのですが、IDE Features Trainerプラグインを使うと、今回紹介したような地味機能をIntelliJ IDEAを使いながら体験できます。Pleiadesプラグインの日本語化にも対応しているので、興味があったらどうぞ。

IntelliJ IDEAに限らず、この手のツールは好みがあります。至極当然ですが、合う人には合うけれど、合わない人にはまったく合わないので、流行うんぬんはさておき、実際に使ってみて手になじむかどうかで評価することをおすすめします。

自分に合うツールかどうかは、機能の多寡よりも使ってみたときのフィーリングが大事です。使ってみて全然ダメだなと思ったものを使い続ける道理はありませんが、ちょっとでも気に入ったころがあったら、しばらく使い続けてみてください。気がつくと、なくては困る片腕のようなツールになっているかもしれませんよ。

今井 勝信 (いまい・まさのぶ) masanobuimai masanobuimai

masanobuimai
システムエンジニア。日本ユニシス株式会社所属。著書に『Android Studio本格活用バイブル 効率的にコーディングするための使い方』(2016年、技術評論社)『IntelliJ IDEAハンズオン 基本操作からプロジェクト管理までマスター』(共著、2017年、技術評論社)など。IntelliJ IDEAが大好き。

付記・完全なアンインストールの方法

本記事にほだされて試してみたけど「それほどじゃなかった」という人向けに、アンインストールの手順を紹介しておきます。

toolbox-uninstall

図のようにToolbox Appの歯車アイコンから「Uninstall」を実行すればアプリケーション本体はキレイに削除されますが、設定ファイルのたぐいは残ります。この手のファイルを残しておくと、忘れた頃に再インストールしたら前の設定が使い回されてデフォルトと異なる振る舞いをした、なんてことが起こり得ます(そして、そのことに気がつかない)

設定ファイルを残しておいて良いことはあまりないので、しっかりと削除しておきましょう。下記のとおり、OSごとに設定ファイルの場所が異なるので、探すときは注意してください####.#はバージョン)

  • Windows、Linuxの場合
    • ホームディレクトリc:\Users\<ログイン名>\または~/直下にある.IdeaIC####.#.IntelliJIdea####.#
  • Macの場合
    • <HOME>/Library/Application Support/IntelliJIdea####.#
    • <HOME>/Library/Preferences/IntelliJIdea####.#
    • <HOME>/Library/Cache/IntelliJIdea####.#
    • <HOME>/Library/Logs/IntelliJIdea####.#

これできれいサッパリ削除されました。

関連記事

修正履歴

2020年1月10日: 「(必要があれば)ユーザインターフェースの日本語化」において日本語化の不便さとして列挙した3項目のうち、最後の「Git操作のたびに、ログのタブが無尽蔵に増える」は既に解消されていることを、Pleiadesの作者である@willbrainsさんからご指摘いただきました。ありがとうございます。修正いたしました。


  1. 初稿を編集部に提出した後に突然JetBrainsのサイトが日本語対応して、急いで原稿を修正したのはナイショです。

  2. IntelliJ IDEAでは、ショートカットキーのセットを「キーマップ」と呼びます。

  3. 一連の空白文字・タブ・改行を一気に削除することです。