18
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

EclipseからIntelliJ IDEAに移行してから良く使っている便利なこと(検索とGitに関して)

Last updated at Posted at 2018-12-31

しばらく前までEclipseを使用していましたがIntelliJ IDEAを使ってみて感激したので
同じようになんとなくEclipseを使用している方に向けて私(おなじプロジェクトのメンバーも含め)が良く使っている使い方を紹介します。
また書いていないことで他の記事にもあまり触れられていなかったら追記しようとおもいます。
この記事では

  • 検索に関する事
  • gitに関する事

に関して書こうと思います。

ショートカット集はまとめられている記事がありますので、なるべくそこで言及されていない観点で書こうと思います。
またプラグインなどいれず、(いれればもっと便利になりますが)デフォルトの機能での紹介になります。

使用している画像は当然仕事のプロジェクトを使用できませんので私の個人が作っている趣味でのプロジェクトを使用しています。関西のJazz系のライブハウスのスケジュールをスクレイピングしてまとめて検索できるアプリで自分用のアプリプロジェクトです。
コードのレベルやコメントなども、趣味レベルなのはご容赦ください。

この記事の前提

###対象の人

  • なんとなくアサイン先で使っているからEclipseを使っている、いままでもなんとなく使っていたから使っている。
  • サーバー側のコーディングはEclipse、クライアントはエディタを使っている
  • IntelliJを知っているけどなんとなくEclipseを使い続けている。IntelliJって何がいいの?
  • FWがspringだからSTSをつかっている

書かない事

そもそもの設定まわりは言及しません。

  • IntelliJのインストールや無料版、有償版の違い
  • 各フレームワークのインポート方法
  • Gitの設定など
  • プロジェクトの読み込みの方法など

ちなみに普段の仕事で使用しているフレームワークはspring です。初めは有償版じゃないとspring bootのプロジェクトは開発できないと先入観があったのですが、よく考えたらJavaであることには変わりませんのでmavenプロジェクトとして、もしくはgradleプロジェクトとして普通に使用できます。ただし、spring特有の補完などは効きません(のちに有償版を使いましたが、それによって新たに使用した機能はクライアントの支援とDBクライアント機能なので無料版でもJavaのコーディングは問題ありません。)
サーバサイドのコーディングだけなら無償版でもspringのプロジェクトでも使用することができます。
クライアント(HTML,CSS,JavaScriptやAltJsなど)のサポートやspringFWのサポート(hibernateのコーディング補完や、springのアノテーションのなんらかのサポート?使用しないのであまりわかっていません。)DBクライアントなどは有償版のサポートとなります。

検索編

Find Action

mac : shift + cmd + 9
win : shift + ctl + 9
これがしたい、あれがしたいなどをなんとなく入力すれば候補を一瞬で表示してくれます。これはどんなもエディタでもIDEでもありますが、これがなくては始まりません。
また私はショートカット集の記事をみても、ショートカット自体を覚えることはありません(どんなことができるのか参考させていただきます。)、なぜならここからやりたいことを一瞬で呼び出せますし、頻繁に使用するするアクションなら、ここでの検索時にそのショートカットを表示してくれるのでそこで覚えてしまうからです。画像はfind actionから settingと commitを呼び出しています。
fidAll.gif

インクリメンタルサーチ

IntelliJではほぼすべての項目においてインクリメンタルサーチがデフォルトで効くようになっており、これが非常に重宝しています。
たとえば project View を開き、そのままキーを押すといきなり検索がはじまります。setting内でも、なんでもです。
ほかのIDEとの違いはファイル内では使用できるが、検索内でのインクリメト、git view内でのインクリメントまでは効かなかったり、頭文字だけだったりする事がおおいので非常に心地いい経験になっています。

プロジェクト View での例
projectView.gif

Recent search(最近使用したファイル、または機能)での例
recentSerch.gif

search EveryWhere

shift 2回押しで発動します。
クラスの移動は別にnavigate classという移動方法がありますが、html、jsファイルの移動するときなどに使っています。
ss.gif

Find in Path

ある文字列、または数行の文字列をプロジェクト全体に渡って検索します。すごいのは検索している状態のまま、検索箇所の編集ができることです。
findInpath.gif

switcher

直近の使用したファイル、機能へ移動するときに使っていますが、Recent searchの方がインクリメント検索きくのでファイル移動はそちらの方が早いかもしれません。
switcher.gif

Jump to Navigation Bar

project view では tree構造でフォルダ構成をみながらの移動ができますが、こちらは違った視点でのナビゲーショになります。
navigate.gif

git編

gitもデフォルトで非常に便利に使えるようになっています。
mac : cmd + 9
win : alt + 9
でversion controll
git.gif

branches

ブランチの移動時に使用しています。
branches.gif

local history

gitではないのですが、ファイルの編集をデフォルトで常に覚えているようで、gitを使用せずとも個人の履歴だけならgit使用せずに履歴をさかのぼりそのままmergeしたりすることができます。

localHistory.gif

git view 内での検索

日常的に使用しています。
searchInGir.gif

compare with ...

ある2つのブランチの比較ができます。source treeでももちろんできますが、みやすさが違うのとmergeもそのままできるので重宝しています。ファイル単位の差分が出ます。プロジェクトを進める上でコンフリクトが発生し、誰かに自分の触った箇所もマージしてもらったけれど大丈夫かな、、というときに確認したりしてます。自分のマージも不安になったとき確認して精神の健康を保っています。
compare.gif

# 他の便利編

book mark

これは過去の他の人が書いたロジックを確認していたとき、メソッドやクラスを移動していたり構成の把握しようとしているときに「しおりみたいなのないかな。。。」とおもって Find Action で「book ..」と検索すると用意されていて驚いた機能です。Eclipseにもあったのでしょうか?
IntelliJはなんというか期待を裏切らない機能が用意されているので、とりあえず「こんなのないかな、、」と Find Actionしたり、右クリックすると大抵用意されていたりします。

book markをつける。
book.gif

つけたbookmarkの一覧を確認したり、ジャンプできる。
showBook.gif

最後にIntelliJの良さとは(というかJet Brains社のプロダクトは)

UXを非常にこだわっています。

  • 検索の速さ(検索時検索しているのでなく、プロジェクトの読み込み時にプロジェクト内のすべての項目においてインデックスしているようです。)
  • 補完の速さ(Eclispeの補完とは比べ物になりません。)
  • ほぼ全ての項目においてのインクリメンタルサーチ
  • 設定の容易さ(Emacsでの設定、Atomでいろいろなプラグインをいれてそのたびそのプラグインの設定して、、、のしんどさがない)

など。つかっていての心地良さがまた新たな使い方を覚えて馴染んでくる感じです。
クライアントではVS Codeが非常によく使われているようですが、個人的な思いとしてサーバサイドコーディングもクライアントサイドコーディングもDBクライアントもGitも全て一つで済ませたい思いがありました。
IntelliJはまさにそれを叶えてくれ、いままでクライアントコーディングはAtomを使っていたり、DBクライアントはA5SQLを使用していましたが全て一つで統合して開発できるようになり、生産性は上がったと思います。

当然ですが、IntelliJは機能が非常に豊富であり、今回紹介した機能以外も(デバッグも機能も条件付きbreakやwatcherなど便利です。)使用していますし、私もつかっていない機能もたくさんあるとおもいます。
またこれは、、、というものがあれば追記したいと思います。
JavaのプロジェクトにおいてなんとなくEclipseを使用している方は一度試してみてはいかがでしょうか?

18
16
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?