RubyMine：ideavimの設定 & ideavimrcについて


## 概要
RubyMineでは、Vimの操作でプログラムを書くことができます。

すなわち、Vim + IDE（統合開発環境）のパフォーマンスを発揮するということです。

ただし、通常Vimではvimrcに設定しますが、RubyMineのideavimは、ideavimrcで設定します。

その手順を紹介します。

## 手順
### ideavimの設定
* まずは、ideavimの設定をします。
* すでにインストールしてある場合は、何もしなくて良いです。

#### (1) RubyMineの初期設定時
* RubyMineの初期設定をする時にideavimをインストールできます。

![スクリーンショット 2017-09-09 13.46.07 2.png](https://qiita-image-store.s3.amazonaws.com/0/142810/3d7fb570-9e9b-981c-4212-6255718798a2.png "スクリーンショット 2017-09-09 13.46.07 2.png")

#### (2) プラグインからインストール
* RubyMineの初期設定でインストールしなかった場合、プラグインからインストールできます。
* まずはPreferencesをクリックします。

![スクリーンショット 2017-09-09 14.30.53.png](https://qiita-image-store.s3.amazonaws.com/0/142810/ba3717a4-e313-6ae4-7d8a-a972e186491b.png "スクリーンショット 2017-09-09 14.30.53.png")

* 次にPluginsを選択します。

![スクリーンショット 2017-09-09 14.31.35.png](https://qiita-image-store.s3.amazonaws.com/0/142810/2d06e927-08d8-1f71-154c-816a23c0db68.png "スクリーンショット 2017-09-09 14.31.35.png")

* ideavimを検索して、なければインストールします。

![スクリーンショット 2017-09-09 14.35.45.png](https://qiita-image-store.s3.amazonaws.com/0/142810/8efb3638-778c-0aff-2b1e-09f9cbe3f567.png "スクリーンショット 2017-09-09 14.35.45.png")

![スクリーンショット 2017-09-09 14.37.00.png](https://qiita-image-store.s3.amazonaws.com/0/142810/de720b2b-4921-0425-80b9-bc12769e71a6.png "スクリーンショット 2017-09-09 14.37.00.png")

* 設定を反映します。

![スクリーンショット 2017-09-09 14.37.50.png](https://qiita-image-store.s3.amazonaws.com/0/142810/4b57b1c9-a063-ec9c-9a3b-ee364836418e.png "スクリーンショット 2017-09-09 14.37.50.png")

![スクリーンショット 2017-09-09 14.38.29.png](https://qiita-image-store.s3.amazonaws.com/0/142810/854ecc98-a77f-a9dc-ee7f-0e89175ad1d6.png "スクリーンショット 2017-09-09 14.38.29.png")

* 再起動します。

![スクリーンショット 2017-09-09 14.38.57.png](https://qiita-image-store.s3.amazonaws.com/0/142810/1876bed2-f921-36b8-96c2-7873f2061b45.png "スクリーンショット 2017-09-09 14.38.57.png")

* これでideavimが使えるようになりました。

### ideavimrcの設定
* ideavimが設定できたので、ideavimrcで細かいVimの設定をします。
* ideavimrcを作成します。

```
$ vim ~/.ideavimrc
```

* 参考として、以下の内容を貼り付けてください。

```
" -------------------------------------
" オリジナル設定
"" ------------------------------------
" 検索するときに大文字小文字を区別しない
set ignorecase

" 検索時に大文字を含んでいたら大/小を区別
set smartcase

" インクリメンタル検索 (検索ワードの最初の文字を入力した時点で検索が開始)
set incsearch

" 検索対象をハイライト
set hlsearch

" 対応する括弧やブレースを表示
set showmatch matchtime=1

" メッセージ表示欄を2行確保
set cmdheight=2

" ステータス行を常に表示
set laststatus=2

" ウィンドウの右下にまだ実行していない入力中のコマンドを表示
set showcmd

" 省略されずに表示
set display=lastline

" 行末のスペースを可視化
set listchars=tab:^\ ,trail:~

" ヤンクでクリップボードにコピー
set clipboard+=unnamed

" 対応する括弧を強調表示
set showmatch

" Escの2回押しでハイライト消去
nnoremap <Esc><Esc> :nohlsearch<CR><ESC>

" 行をまたいで移動
set whichwrap=b,s,h,l,<,>,[,],~

" インデント方法の変更
set cinoptions+=:0

" インデント幅
set shiftwidth=2

" タブキー押下時に挿入される文字幅を指定
set softtabstop=2

" -------------------------------------
" 他人の設定
" ------------------------------------

"x キー削除でデフォルトレジスタに入れない
nnoremap x "_x
vnoremap x "_x

" ヤンクでクリップボードにコピー
noremap "+y "*y
noremap "+Y "*Y
noremap "+p "*p
noremap "+P "*P
noremap <C-S-c> "*y
noremap <C-S-v> "*P
```

* RubyMineを再起動します。

![スクリーンショット 2017-09-09 14.45.12.png](https://qiita-image-store.s3.amazonaws.com/0/142810/1eace8b8-2ab6-29bb-4650-43c113a8a899.png "スクリーンショット 2017-09-09 14.45.12.png")

* これでideavimrcに設定した動作ができるようになりました。

#### 以上が簡単でしたが、ideavimの設定になります。