2
3

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 3 years have passed since last update.

IntelliJ IDEA|かゆいところに手が届くIntelliJのイカしたやつら

Last updated at Posted at 2020-11-30

![mac-os](https://img.shields.io/badge/macOS-10.14.6 と 10.14.1-) ![ide-ver](https://img.shields.io/badge/IntelliJ IDEA-2020.2-)![keymap](https://img.shields.io/badge/Keymap-Mac OS X 10.5+ copy (ここひとつですんごく変わる)
-)

dokusha

はじめに

前回に続き、今回もIntelliJの機能を紹介していきます。
基本機能を使いこなし始めたあの日に知っていたならば・・・と思った機能を紹介します。

限定的な場面でしか利用しない機能もあるのでつまみ食いで覚えていくとよきですね。


String Manipulation

2020年ワタシ的ベストプラグイン、栄えある1位を勝ち取ったString Manipulation。
name:Popup String Manipulation ...
key:option + shift + M

シーケンス作成

数字のついていない単語に対してはシーケンスを作成してくれないようなんです。
▼下記で紹介している Add Selection for Next Occurrenceなどで単語選択して、一旦数字を入れる手間が必要になります
create_s.gif

作成されるシーケンスは選択範囲の一番小さい数を元に作成されるのでいきなり100番とかもできますね。

ただこの子、ちょっと冴えないところがあって……

▼下記のような1行に複数の数字がある構造だと
let_ss.png

▼そうじゃないんだよな・・・って感じになってしまうんですね
let_ss_s.png

あとは数字は1ずつしか増減できないところとか。
IntelliJのマクロを使ったことないのでなんとも言えませんが、引数を受け取れるならマクロと組み合わせて・・・とできそうですがそこまでやるならVim使えって話ですし。

なんかいい方法ないかな・・・

name:Create Sequence
key:control + option + shift + command + S

インクリメント

選択範囲の数字を1足していく
name:Increment
key:control + option + shift + command + +

デクリメント

選択範囲の数字を1引いていく
name:Decrement
key:control + option + shift + command + -

String Manipulationは使い始めてからまだ1ヶ月とかそのぐらいなので、これからどんどん使い倒していこうと思います。
便利な使い方があったら教えてくださいね!


次の単語へ移動

選択されている単語に一致する次の単語に移動してくれます
find_next.gif

command + Fの検索を通さなくて済むので便利ですね

name:Find Next / Move to Next Occurrence
key:command + G


単語をひとつずつ選択

上記のFind Next / Move to Next Occurrence と似ているがこちらは移動するごとに選択状態を維持してくれるもの

g_karano_henkan.gif

name:Add Selection for Next Occurrence
key:control + G


ファイル内単語全選択

上記のAdd Selection for Next Occurrence のファイル内一括選択版

subetesentaku_henkan.gif

name:Select All Occurrences
key:control + command + G


オプション2回連打からの矢印でマルチカーソル

multi_c.gif

name:不明
key:option 2連打(連打後ホールド) + or


単語ごとに移動

macのoption + 左右矢印と同じですね。

次へ移動

name:Move Caret to Next Word
key:control + \

前へ移動

name:Move Caret to Previous Word
key:control + '


単語ごとを選択しながら移動

macのoption + shift + 左右矢印と同じですね。

次へ

name:Move Caret to Next Word with Selection
key:control + W

前へ

name:Move Caret to Previous Word with Selection
key:control + shift + W


拡張選択

ex_select.gif

最初にカーソルを合わせる位置によって選択される手数が違うのでいろいろ試してみてください。
GIFで言うと12行めの最初にカーソルを置いて呼び出せばbirthメソッド全体を1回で選択してくれる。ちょーべんりです。

name:Extend Selection
key:option + ↑


選択範囲縮小

Extend Selectionの逆バージョン。選択範囲を小さくしていく。
name:Shrink Selection
key:option + ↓


選択範囲内で置換

いつの日からかIntelliJでも選択範囲からのみの置換ができるようになっていた。

多分ver 2020〜だと思うんですけど、置換・検索のマッチングで正規表現やWord一致にショートカットが割り当てられていて使いやすくなりましたね!

よく利用するコンボが 拡張選択 -> これ

name:Replace...
key:範囲を選択して command + R


単語登録

たとえば「Qiita」など、造語やJapanese的には正しいんだけどEnglish的には正しくないワードを扱うときに、警告を出されると気に障るので適宜直していきます。
自分が開発しているサービス名などがtypo判定されるのって癪に障りますよね。

name:Show Context Actions
key:typoって言っている箇所でoption + enter -> Save ~~ to dictionary

▼辞書登録したものは下記から確認、登録、削除ができるようになっている
spelling.png


警告内容の表示

なにか間違いがあるとコードに波線が引かれるようになっているのでその詳細を確認します。
エラー内容がコピーしづらいのがいまいち
name:Error Description
key:command + F1


つまりこれがしたいのか?を提案してくれる

▼ワンライナーをdoつきのブロックに変換したり
convert_onelinner.gif

▼typoしている箇所でTypo Rename toを選択すれば候補を持ってきてくれたり

recommend_typo.png

name:Show Context Actions
key:option + enter


これが使えるよ。を教えてくれる

こうですよね?っていうのを提案してくれる目玉機能。

あああ!名前つき引数の名前がでてこねええってときにも親切にrequiredって書いてある状態で出してくれる。
arg_complete.png

チェーンしたときに押したり、改行した直後に押せばそれっぽい予測を出してくれる優れもの。複数回押すと利用できるあれこれのスコープが変わるのでお試しを!

name:Basic
key:control + shift + enter


アクティブなウィンドウのタブをすべて閉じる

name:Close All
key:control + F4


アクティブなウィンドウの選択ファイル以外のタブをすべて閉じる

つまり見ているファイルのタブだけは残るってことです。
name:Close Others
key:control + shift + F4


選択しているファイルの変更履歴を表示する

Gitで管理しているファイルで実行すると変更履歴を一覧で見られる
name:Show History
key:shift + command + S


クリップボードとの差分

たまによく使う。
違いを見比べるときに脳内リソース使わなく済むので助かってます。
comp_s.png

name:Compare with Clipboard
key:クリップボードに比較したいものをコピーしたあとに、比較対象を選択してcontrol + shift + command + E


Autoscroll Save

プロジェクトツリーを開いたときに、選択しているファイルをツリーで選択状態にするかどうか。を全プロジェクトで共有できる。
ナニいってんだョ・・・って感じだと思うのでGIF見てください。

scrol_save.gif

これを全プロジェクトで共通の設定にできるやつです。地味に便利!

name:Toggle Autoscroll from Source
key:control + shift + command + \


タブを次のウィンドウに移動する

ザ・孫の手

to_right.gif

name:Move To Opposite Group
key:control + option + tab


引数をポップアップで表示

たしかデフォルトでは引数がグレーアウトで表示されていると思いますが、ずれる瞬間がすごく好みではないのでわたしはオフにしています。オフにする方法は・・・忘れました。

pop_up_arg.png

name:Parameter Info
key:command + P


定義をポップアップで表示

ジャンプするまでもないのでチラ見したいとき

qq_j.png

name:Quick Definition
key:option + space


ドキュメントチラ見

qq_doc.png

name:Quick Documentation
key:control + J


ドキュメント参照

name:External Documentation
key:対象のメソッド上でshift + F1

たとえばArray#eachを参照すると https://rubydoc.info/stdlib/core/Array#each-instance_method に飛びます。


内容を先に書いてあとから包む

▼ifの条件を先に
first_t.gif

▼メソッドの中身を先に書いてあとから包む
ichihaichi.gif

メソッドで包むほうは後述のメソッド切り出しを利用することがほとんどですが、条件式にするのは結構使ってます。

name:不明
key:-
trigger:なにかの式のあとで. + ifdefwhileなどを打つ


コピー履歴から貼り付け

ClipyやAlfred有料版を利用している方はあまり使わないかもしれないですね。

copy_hist.png

name:Paste from History...
key:shift + command + V


リファクタリングメニューの表示

IDEはリファクタリングでこそ真価を発揮する。こう言ったのはあきやさんですが、あながち間違ではない気がするんですよね。

name:Refactor This...
key:control + T

一時変数の除去

inline.gif

name:Inline...
key:command + option + N

メソッドに包み込む

name:Extract Method...
key:option + command + M

そのほかにもメソッドを親クラスに移動する、メソッドを子クラスに移動するといったものもあるのでぜひ活用してください


条件式などで囲む

たとえばRubyだとこういったメニューがでてくる
o_cm_t.png

name:Surround With...
key:option + command + T


コンフリクトの解消をわかりやすく

▼GitHubの画面からこういう風に表示されているやつを楽に修正できるやつ
conflict_nn.png

command + 9でメニューを開く
sample_conflict1.png

▼複数のファイルがコンフリクトしている場合はここにコンフリクトしているファイルがすべて表示される
sample_conflict2.png

コンフリクトを修正したいファイルをダブルクリック

▼真ん中が最終的な変更になるように<<Xをポチポチして修正する
sample_conflict3.png

この画面で普通に文字入力もできる。

name:不明
key:command + 9から選択


最近開いたファイルを一覧からもう一度開く

name:Recent Files
key:command + E


クラスやメソッドなどのスコープの始端、終端に移動する

地味オブ地味なんですけど結構好きなやつ

me.gif

name:Move Caret to Matching Brace
key:control + M


クラスやメソッドを折りたたむ

name:不明
key:command + .


メソッドやクラスのパスをコピー

レビューするときとコードリーディングするときに使ってます。

name:Copy Reference
key:option + shift + command + C


ファイルのパスをコピー

name:Copy Paths
key:control + option + C


ファイルのパスを行番号と一緒にコピー

src/file_name.rb:10とかの形式でコピーするやつ。

name:Path With Line Number
key:control + option + shift + C


利用できるLive Templateを確認

今開いている拡張子で利用できるLive Templateの一覧を表示。
ときどき自分で登録したエイリアスがわからなくなったりするときに使ってます。
スクリーンショット 2020-09-28 17.45.51.png

name:Insert Live Template...
key:command + J


思いついたら追加していく


おわりに

vim入れてる人多いんですかね・・・

2
3
0

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
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?