《生産性向上》覚えておきたい！ JetBrains IDEのショートカット集

# ショートカットキーが多くて、使いこなせていない方いませんか?
ショートカットキーには魅力が満載ですよ！

僕が、[JetBrains IDE](https://www.jetbrains.com/)で普段使っているショートカットキーを厳選してお伝えします。
文字だけでは動作イメージしづらい部分もあると思いましたので、GIF画像と一緒に紹介していきます。
ショートカットキーは使うだけで生産性が向上するので、使って覚えていきましょう！

Keymapは、`Mac OS X 10.5+`でデフォルト設定のものを記載していきます。

## 環境
- macOS　Mojave　バージョン10.14
- JetBrains IDEのKeymap：　Mac OS X 10.5+

#### Keymapの確認
1. `⌘` + `,`   を押してPreferencesダイアログを表示
2.  Keymapを選択し確認する

# コーディング系

### ℹ️ 選択範囲の拡大
`⌥(option)` + `↑`

![1.gif](https://qiita-image-store.s3.amazonaws.com/0/190875/4486352a-aa10-8d9d-4027-cef4139d8f7f.gif)

### ℹ️ 選択範囲の縮小
`⌥(option)` + `↓`

![2.gif](https://qiita-image-store.s3.amazonaws.com/0/190875/14c973a2-9835-cf74-e1a0-4ca4bd80fbf2.gif)


### ℹ️ カーソルのある行を囲む ＆ コード補完
1. カーソルのある行を囲む：`⌘(command)` + `⌥option` + `T`
2. 行いたい処理を選択して、`↩(retrun)`

![3.gif](https://qiita-image-store.s3.amazonaws.com/0/190875/07ccf7d1-3a03-b2ea-8d17-455dfce022f8.gif)

### ℹ️ 行/選択範囲の複製
`⌘(command)` + `D`


![4-1.gif](https://qiita-image-store.s3.amazonaws.com/0/190875/f84fc626-53c7-d834-4292-bcee90373502.gif)


### ℹ️ 行の削除
`⌘(command)` + `delete`

![5.gif](https://qiita-image-store.s3.amazonaws.com/0/190875/1941812f-bfa5-8102-889d-f9433f19633e.gif)



### ℹ️ 選択文字列の置換
`⌘(command)` + `R`


![6.gif](https://qiita-image-store.s3.amazonaws.com/0/190875/deebd4bf-7af6-4331-9161-dd66ad97a56b.gif)



`⌘(command)` + `Shift` + `R`とすると、プロジェクト内を置換の対象にできます。
>検索と置換の切り替え
パス内検索からプロジェクト内の置換ウィンドウに切り替えるには、⇧⌘Rを押します。
プロジェクト内の置換からパス内検索ウィンドウに切り替えるには、⇧⌘Fを押します。

引用元：[プロジェクトのテキストの検索と置換](https://pleiades.io/help/ruby/finding-and-replacing-text-in-project.html)

### ℹ️ 関数・クラスの定義場所にジャンプ
`⌘(command)` + `B`

![7.gif](https://qiita-image-store.s3.amazonaws.com/0/190875/f04c6188-3da2-4125-41a1-c871b67963b6.gif)



### ℹ️ 基本コード補完
`^(control)` + `Space`

![9.gif](https://qiita-image-store.s3.amazonaws.com/0/190875/a1dd2714-450c-e0e0-bd12-025a71367a91.gif)

`^(Control)` + `Space`　を２回押すと、現在のファイルにimportされたかどうかに関係なく、コード補完できます。

- クラスがまだインポートされていない場合は、import文が自動的に生成されます。

### ℹ️ ステートメントの補完
`⌘(command)` + `Shift` + `return`

![10.gif](https://qiita-image-store.s3.amazonaws.com/0/190875/3d8f4d44-7441-3800-27c9-069a14a07d98.gif)

- 現在カーソルの位置に関係なく、文の最後にセミコロンをつけることができます。

### ℹ️ 指定行へ移動
`⌘(command)` + `L`


![11.gif](https://qiita-image-store.s3.amazonaws.com/0/190875/f1995164-963d-3326-e1d8-11ba8cba5483.gif)


### ℹ️ ジャンプ前の位置に復帰
`⌘(command)` + `[`
![12.gif](https://qiita-image-store.s3.amazonaws.com/0/190875/7ae1a3b7-bae6-89df-4829-17aa0807d943.gif)



### ℹ️ ジャンプ後の位置に復帰
`⌘(command)` + `]`

動作は、上記を参照

### ℹ️ 最後の編集箇所にジャンプ
`⌘(command)` + `Shift` + `delete`

![14.gif](https://qiita-image-store.s3.amazonaws.com/0/190875/4017cfd0-4a86-1d24-1097-7c5d477b958f.gif)

- 別のファイルに移動していても、最後の編集箇所にジャンプできます。

### ℹ️ Run（実行）

![15.gif](https://qiita-image-store.s3.amazonaws.com/0/190875/f1ed1352-392b-93d3-b7c4-2d5ec09a701f.gif)


### ℹ️ 明示的にコードのリフォーマット
`⌥Option` + `⌘(command)` + `L`



![17.gif](https://qiita-image-store.s3.amazonaws.com/0/190875/94563b3e-a10e-875d-3315-e4824ec1618d.gif)


- 領域を選択している場合は選択中の領域に、選択していない場合はファイル全体にフォーマットが適用されます。

### ℹ️ コードのステートメントの位置を変更
`⌘(command)` + `Shift` + `↑`or `↓`

 ![18.gif](https://qiita-image-store.s3.amazonaws.com/0/190875/4ac51fa3-97e6-ce54-1f52-7313d5352eff.gif)




- ファイル内のコード行を再編成するのに便利です（変数宣言を変数の使用箇所に近づけるなど）。
- 複数選択してあると、その部分の行を変更できます。


### ℹ️ 複数行を１つに結合
`^(control)` + `Shift` + `J`

![19.gif](https://qiita-image-store.s3.amazonaws.com/0/190875/67bdf991-5b32-2d03-610f-6cbbb013913f.gif)


- 2行(カーソルのある行と、その下の行)を1つに結合し、コード・スタイルに合わせて不要なスペースを削除します
- 複数行に渡って選択されている場合は、選択されている行が１行になります。



# 検索系
### ℹ️ どこでも検索

- `shift`を２回押す

<img width="477" alt="どこでも検索.png" src="https://qiita-image-store.s3.amazonaws.com/0/190875/3f4105d0-0e41-7ef1-cce2-f35a7085aba4.png">


上記の画像のように、Classe・Files・Symbols・Actions　を対象に検索します。

### ℹ️ クラスをすばやく検索
`⌘　` + `O`

![20.gif](https://qiita-image-store.s3.amazonaws.com/0/190875/e06a1c34-e4b1-ec97-92b9-e72b68b90f24.gif)


### ℹ️ ファイルをすばやく検索 
- `⌘(command)` +　 `shift` + `o`

![21.gif](https://qiita-image-store.s3.amazonaws.com/0/190875/cabace00-c9ef-2a72-2750-331f73070602.gif)


# その他 便利ショートカット 
### ℹ️ 新規ファイルの作成
プロジェクトのルートを選択してから
`⌘(command)`+`1`
新規ファイル作成
`⌘(command)`+ `N`

![22.gif](https://qiita-image-store.s3.amazonaws.com/0/190875/fe9211b0-ad4a-b02d-0e3a-7124b6b95ad8.gif)



VSCなどのエディタでは、`⌘(command)`+ `N`のみで新規ファイルを作ることができるのですが、
JetBrains IDEでは、どのプロジェクトディレクトリで新規ファイルを作成するか指定する必要があります。

### ℹ️ 画面分割
メニューバーの「`Window` > `Editor Tabs`」内にある
`Split Vertically`と`Split Horizontally`で縦横に分割出来ます。

`Split Vertically`  で縦分割
`Split Horizontally` で横分割

![24.gif](https://qiita-image-store.s3.amazonaws.com/0/190875/b6d87870-e028-9f50-1ec1-0e42294398e0.gif)


- 画面分割は、デフォルト設定のままだとショートカットキーで行うことはできないですが、短時間に何度も行わないので手間ではないと思います。

### ℹ️ マルチカーソル
`^(control)` + `G`

![25.gif](https://qiita-image-store.s3.amazonaws.com/0/190875/7f5b5ab5-033d-2b1b-657b-26a4c4ca3ac9.gif)



また、`⌥(option)`キーを押したままマウス・ポインターをドラッグすると、簡単にカラムを選択できます。
マウスポインターでマルチカーソル機能を使う場合は、以下の記事が参考になります。

- [WebStormのマルチカーソル機能が便利すぎて鼻から牛乳が出る（IntelliJ IDEA、PhpStorm対応）](https://qiita.com/tonkotsuboy_com/items/b974286806ca670a4653)



### ℹ️ プロジェクトの最近の変更を確認する
`⌥(option)` + `Shift` + `C` 


![26.gif](https://qiita-image-store.s3.amazonaws.com/0/190875/9730de16-4c10-5661-4ec7-dbf5a5aaca1c.gif)



- 新規ファイルとして、何をいつ作成したのかなど確認できます。


# 終わりに
便利なショートカットはたくさんあります。
このショートカットキーを使うと作業の効率をあげることができそうと思ったら、積極的に覚えて使っていきたいですね。

## 余談
- 開いているHTMLファイルをブラウザでプレビューする　ショートカットキー:  `⌘(command)` + `Shift` + `D`
- Postfix completion(ポストフィックス補完)

など言語ごとに適したショートカットがあるので、調べてみるのも面白いと思います。

以前、[Postfix completion(ポストフィックス補完)](https://blog.jetbrains.com/jp/2014/03/19/433)は、JavaScript・PHP・Python・Java・Kotlin・Scalaしか対応していなかったですが、
Version 2018.1より[Rubyも対応しています](https://blog.jetbrains.com/ruby/2018/03/postfix-code-completion-in-2018-1/)。

それからこの記事では、バージョン管理システム(VCS)については触れませんでしたが、
直近のアップデートで[GitHubのpull requestが送れる](https://blog.jetbrains.com/idea/2018/10/intellij-idea-2018-3-eap-github-pull-requests-and-more/)ようになりました。

>This is just the beginning as we plan to extend this functionality with the upcoming releases. Stay tuned for more updates!

引用元：[IntelliJ IDEA 2018.3 EAP: GitHub pull requests and more
](https://blog.jetbrains.com/idea/2018/10/intellij-idea-2018-3-eap-github-pull-requests-and-more/)
とあるように、これからどのようなアップデートがされていくのか楽しみです！

また、[ショートカットの紙](https://pleiades.io/sites/willbrains.jp/keymap/pdf/shortcut_intellij_mac.pdf)を印刷して見えるところに貼るのも、おすすめです！
 <a href="https://pleiades.io/sites/willbrains.jp/keymap/pdf/shortcut_intellij_mac.pdf"><img src="https://qiita-image-store.s3.amazonaws.com/0/190875/e84a1b4e-3fd0-a920-0662-17e58039d5c4.png" width="70%"></a>

- [公式ショートカット一覧 PDF 日本語版のダウンロード（ページの最下部より可能です）](https://pleiades.io/pages/pleiades_jetbrains_manual.html)


これを期に、みなさんの生産性が少しでも向上すると嬉しいです。