IntelliJ をテキストエディタとして使ってみる

IntelliJに手が馴染んでくると、いつも使うテキストエディタとしても使いたくなってくる。
そのユースケースで必要な設定やキーマップ（ショートカット）などをまとめてみた。
個人的な要望としては、JetBrains社にプログラミング機能を除いたコアな部分をシンプルなエディタとして提供してほしい。

前提
====
- 通常のエディタに比べて決して軽いソフトではないが、昨今のマシンであれば気にならない範囲だと思う。
    - とはいえ、もちろん最初の起動はそれなりに遅い。よっぽどでないと使い続けるには至らないと思われる。
- 一ヶ月ほど使い続けてみて書き溜めてみた。まだあるはずなので、適当に更新したい。
- フォントなど外観の話はそれぞれの好みだと思うのでここでは触れない。
- 基本デフォルト設定で。
- ショートカット操作などは、Macのものしか書いていない。ごめんなさい。

## Version
- IntelliJ IDEA 14.1.4
    - "Community Edition" （FREE!）でできることだけ。
    - https://www.jetbrains.com/idea/download/

はじめの設定
====

## まず最初は、Open Project
テキストファイルがあるディレクトリを、File -> Open で指定すると、そのディレクトリをベースにプロジェクトが展開される。
プロジェクトごとに切り替えができるので、用途に合わせてディレクトリを分けるのもいいかもしれない。

## Markdown
まず最初に気になったのは、**Markdownが使えるか** だったが、以下のプラグインを入れれば必要充分という感触。プラグインのインストール方法は割愛したい。

- gfm （現時点では Version: 0.1.5）
    - ずばり、**GitHub flavored preview** できる。
    - ライブプレビューができるわけではないが、タブを Text <-> Gfm Preview のようにショートカットでさくさく切り替えられるので、あまり気になっていない。
    - plugin のファイル容量が大きいが、何とか気にしないようにする。
- Markdown support
    - Formatに合わせて色をつけてくれる。
    - 他にもいくつかあるのだが、**Jetbrains 社製**、ということで安心感を優先。
    - これにも Preview がついてきて、上記 gfm のプレビューとタブが2つになってしまって困る。仕方なく我慢している。
    - 上記 gfm があれば プレビューには困らないのだが、特に見出しとかで色ついてくれないと困るので、仕方なく。

## idea コマンド
まず Command Line から エディタを開けるようにする。
:star: なぜか。IntelliJにはTerminalが内蔵されていて、**その内蔵TerminalとEditorを一つのアプリケーション内で行き来できる**ので、気持ちがいい。（とても大事）
Menu の Tools -> Create Command-line Launcher で `idea` コマンド（default設定。コマンド名はもちろん変更可能。) を任意のパスに追加してくれる。これで Terminal から簡単にテキストファイルを開ける。

つまり、以下のコマンドでファイルをエディタで開けるようになる。

```
idea test.md
```

さらに `peco` 使いであれば、以下のような応用は言うまでもない。See also [peco](https://github.com/peco/peco)

```
idea $(find . | peco)
```

キーマップ（ショートカット）
====

https://www.jetbrains.com/idea/docs/IntelliJIDEA_ReferenceCard_Mac.pdf をベースに、テキストエディタとして必要な分だけ抜粋してみる。
なるべく最小限にしたつもり。頻繁に使うものには :star: をつけてみた。

## General
| キー | 説明 | 補足 |
|:-----|:------|:------|
| ⌘ 0 ... ⌘ 9 | Open corresponding tool window | :star: 大事。主に Project window を開閉するのにしか使わない。（⌘ 1） |
| ⌘⇧ F12 | Toggle maximizing editor | :star: お決まり。 |
| ⌥ TAB | Switch between tabs and tool window | 一見便利そうであまり使わない。 |

## Editing

| キー | 説明 | 補足 |
|:-----|:------|:------|
| ⌘⇧ V | Paste from recent buffers... | 過去の Clipboard から選んで貼り付けできる。が、個人的には同じキーで ClipMenu を使っているのでClipMenuが優先されている。 |
| ⌘ W | Close active editor tab | 他エディタでもお決まりだとは思う。 |
| ⌘ Delete | Delete line at caret | :star: 行ごと削除。 |
| ⌥ Delete | Delete to word start | :star: 単語ごと削除するときに。英語でとても便利。日本語だと句読点までズバッと削除されちゃうが、それはそれで我慢できる範囲。 |
| ⌘ Enter | Smart line split | 地味によく使う。カーソルはその場にとどまったまま、改行してくれる。 |
| ⇧ Enter | Start new line | 地味によく使う。文中でも改行して新しい行にカーソルしてくれる。 |
| ⌥ ↑, ⌥ ↓ | Incremental expression selection. | 単語選択したいときとかに便利。 |
| ⌥⇧ ↑, ⌥⇧ ↓ | Move selected line. | 選択行を上下に移動。複数行選択して上下も問題無し。 |
| ⌃ G | Multi cursor for selected word. | :star: 便利。特定の文字を選択して同じ編集をする。 |
| ⌥ Pointer Cursor | Multi cursor. | :star: 必須。いわゆるポインタで矩形選択。キー押しながらドラッグ。 |


## Search/Replace

| キー | 説明 | 補足 |
|:-----|:------|:------|
| Double ⇧ | Search everywhere | :star: IntelliJができること全てのコマンドから検索してくれる。Shift 2回連続で入力する。ショートカットがないものに使ったりする。（後述） |
| ⌘ F | Find | :star: 他エディタでも同じバインドは多いはず。 |
| ⌘ G | Find next | :star: |
| ⌘⇧ G | Find previous | :star: |
| ⌘ R | Replace | :star: |
| ⌘⇧ F | Find in path | パス内でファイル横断検索したいときに。 |
| ⌘⇧ R | Replace in path |  |

## Navigation

| キー | 説明 | 補足 |
|:-----|:------|:------|
| ⌘⇧ O | Go to file | :star: 何はともあれ、ファイルを開くことから。 |
| ⌃ ←, ⌃ → | Go to next/previous editor tab | :star: タブの切替。 |
| ⌘ L | Go to line | コーディング以外ではあんまり使わないが。|
| ⌘ E | Recent files popup | :star: |
| ⌘ ↑ | Show the Navigation bar. | :star: 便利。この後、ナビゲーションバーから上下左右でファイルを選択して開くとか。左右でディレクトリ階層を上がったり下りたりできる。|
| ⌘⇧ delete | Navigate to last edit location | たまに使う程度。 |
| F3 | Toggle bookmark | Favorites で行単位のブックマークを管理できる。使いそうであまり使わない。|
| ⌥ F3 | Toggle bookmark with mnemonic | 数字（or 英字）をつけてブックマークを管理できる。使いそうであまり使わない。以下2つとセットで使う。 |
| ⌃ 0 ... ⌃ 9 | Go to numbered bookmark | 数字指定でブックマークを一発で開く。 |
| ⌘ F3 | Show bookmarks | 全部ずらっと見たいときに |
| ⌥ F12 | Open Terminal | :star: 大事。内蔵Terminalを開く。閉じるもできる。 |


その他
====
いくつかショートカットが割り当てられていないけどよく使いたい機能がある。こういったものは、```Double ⇧``` Search everywhere で解決する。

- Split Vertically/Horizontally （ウィンドウ分割）
    - エディタのタブで右クリックしないといけない。
    - Search everywhere で、 `split V` or `split H` まで入力するとダイレクトにいける。
- Font Sizeを大きくしたり小さくしたり。
    - Preference の奥深くまで行かないとできない。（多分）
    - Search everywhere で、 `font` まで入力すると、increase/decrease/reset を表示してくれる。あとは選ぶだけ。連続でできないのが辛い。
- 内蔵Terminalを開く。
    - ~~ツールバーまでポインタしてクリックしないといけない。~~ 訂正：⌥ F12 で出来た。
    - Search everywhere で、 `terminal` まで入力してEnter。

おまけ Plugin
====

## CodeGlance Plugin
- Sublime Text で言うところの minimap （エディタの右にうっすら出てくるあれ）を追加する。 
- Plugin 説明から引用。  
*Embeds a code minimap similar to the one found in Sublime into the editor pane. Works with both light and dark themes using your customized colors for syntax highlighting.*
- 試した時点で version 1.4.2

参考
====
## キーマップ（ショートカット）
- https://www.jetbrains.com/idea/docs/IntelliJIDEA_ReferenceCard_Mac.pdf
- https://www.jetbrains.com/idea/help/keyboard-shortcuts-you-cannot-miss.html
- http://qiita.com/yoppe/items/f7cbeb825c071691d3f2