Rubymineの設定まとめ (Windows)

# 概要

Rubymineの設定について検索するとMacの設定が多く、Windowsの設定があまりHitしなかったので設定をまとめます。

# 初期設定
* [CentOS7サーバをSambaマウントしてWindows上のRubymineで開発するための環境構築方法](http://qiita.com/ftakao2007/items/fe60db8fd262a0dcfaf4)
* [Bash on Ubuntu on Windowsを利用してWindows上のRubymineで開発するための環境構築方法](http://qiita.com/ftakao2007/items/b1b8a24d02096f800f24)

# Git設定

## 前提条件
* Windows版Gitがインストールされている
    * 方法1. Gitを入れる
    * 方法2. Cmderを入れる

## 設定方法
File -> Settings -> Version Control -> Git

* インストールされたGit(ここでは `C:\Program Files\Git\cmd\git.exe` )を指定してOKを押す。
    * (SSH executableもいじった方が良いという記事もある)

![image](https://qiita-image-store.s3.amazonaws.com/0/20474/39d01cf4-464c-e6ab-3d60-653c47bc7a83.png)

# ショートカット
* Alt + 9
    * 変更分を一覧表示 (`git status`)
* Ctrl + d
    * 選択したファイルのdiffを確認 (`git diff`)
* Ctrl + Alt + a
    * `git add`
* Ctrl + k
    * `git commit`
* Ctrl + Shift + k
    * `git push`

# Rspec設定

* 前提条件
    * Rspecがコマンドで実行できるところまでは設定ができている
* 設定方法
    * Run -> Edit Configurations... -> (「+」を押してRspecを選択)
    * 「Name」に適当な名前を入れる
        * 例) Test: blog
    * 「Spec script:」に実行するspecファイルのPATHを入れる
        * 例) C:\Users\ftakao2007\Desktop\blog\spec\controllers\articles_controller_spec.rb
    * Budlerを使っている場合は「Bundler」タブの「Run the script in context of the bundle (bundle exec)」にチェックを入れる
    * 「OK」を押す
![Rspec2.png](https://qiita-image-store.s3.amazonaws.com/0/20474/d1711d94-d328-677f-b95c-96b04279ad54.png)


# コーディング

## ショートカット
* Ctrl + /
    * 選択した行をコメントアウト
* Ctrl + b
    * コードジャンプ
* Alt + 4
    * コンソール画面の表示
* Ctrl + Shift + f
    * grep

![image](https://qiita-image-store.s3.amazonaws.com/0/20474/95970487-534e-b8b3-ddae-398bb42acf96.png)

# プレゼンテーションモード

プレゼンするときに利用

* モードの利用
    * View -> Enter Presentation Mode
* プロジェクトのメニュー表示
    * Alt + 1

# コンソールの文字化け解消

* Rubymineの実行ファイルがあるフォルダに「rubymine.exe.vmoptions」というファイルがあるので以下追記
    * 例) ` C:\Program Files (x86)\JetBrains\RubyMine 2016.2.4\bin\rubymine.exe.vmoptions `
    * 「rubymine64.exe」を使っている場合は「rubymine64.exe.vmoptions」に追記
        * 設定を記載するファイルは後述の「`idea.log`」に出力される「`-Djb.vmOptionsFile=`」のPATHを確認すると確実です。

``` shell
-Dconsole.encoding=UTF-8
-Dfile.encoding=UTF-8
-Dsun.jnu.encoding=UTF-8
```
![char.png](https://qiita-image-store.s3.amazonaws.com/0/20474/d21117f8-706e-4a78-123a-c418d8101dad.png)

様々な参考サイトを見て`-Dconsole.encoding=UTF-8` と `-Dfile.encoding=UTF-8` を入れたがそれだけでは解消しなかった。`C:\Users\(Windowsのユーザ)\.RubyMine2016.2\system\idea.log` を確認したところ、JVM Argsにオプションは設定されていたがJNU charsetがMS932となっていた。 `-Dsun.jnu.encoding=UTF-8` を設定することでUTF-8となった。

JVM Argsにオプションが設定されているが、JNU charset : MS932ではコンソールに表示される日本語が化けてしまう。
![01.png](https://qiita-image-store.s3.amazonaws.com/0/20474/c1710fdb-15e4-db26-1870-42eb8d3181f8.png)

* 参考リンク
    * [Configuring Output Encoding](https://www.jetbrains.com/help/ruby/2016.1/configuring-output-encoding.html)
    * [IntelliJ IDEA 14.5 + Spring Framework + Tomcat7 環境構築時メモ](http://qiita.com/mugi/items/563fffd643dfadbcfe8e)
    * [MacでJDK6以降のstdoutがSJISになる現象の根源](http://sassembla.github.io/Public/2012:11:25%2020-34-26/2012:11:25%2020-34-26.html)


# 2回Runを実行してプロセスが残ったときの対応

Railsを実行している状態で停止せずに再度実行してしまったとき、前のプロセスが残っているためにRailsが実行できなくなることがあります

![image](https://qiita-image-store.s3.amazonaws.com/0/20474/54246702-9996-6e53-638c-d78c840afcf5.png)

~~この状態になると、サーバにログインして手動でプロセスをkillするしかないみたいなのですが、以下のようにするとRubymine上からkillできます~~
単純にCtrl + F2 or Runからstopで止まりました。。
![image](https://qiita-image-store.s3.amazonaws.com/0/20474/f7a418a5-ab2e-db8b-a07f-2aea2df02bd3.png)

# Bundler

## bundle installの実行

Tools -> Bundler -> Install
![image](https://qiita-image-store.s3.amazonaws.com/0/20474/a4a1895f-670a-5aa3-768a-b54b67a5b7c6.png)

`--path vendor/bundle` を指定してInstall
![image](https://qiita-image-store.s3.amazonaws.com/0/20474/b891006d-d30b-156a-6d4a-46ed47100022.png)

## Gemfileを指定して実行

`--gemfile (Gemfile名) --path vendor/bundle` を指定してInstall
![image](https://qiita-image-store.s3.amazonaws.com/0/20474/55421e9d-b533-187a-f5ea-001cf1418d25.png)


# Markdown

拡張子をmdにしてファイルを作成するとMarkdownのファイルとして認識してくれる
![image](https://qiita-image-store.s3.amazonaws.com/0/20474/02b75ec1-a08b-0004-426c-5f3855639b16.png)

# 参考

## Rubymineでpry-byebugを使う (非推奨)

* 諸注意
    * **既存の環境が壊れる可能性がある操作が含まれます**
    * とりあえず動いたレベルで、現状表示が化けたりします

Rubymineでは[ブレークポイントを使ったデバッグ](http://qiita.com/masa-iwasaki/items/8b3e49e3b34f8b1f3c78#%E3%83%96%E3%83%AC%E3%83%BC%E3%82%AF%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E3%83%87%E3%83%90%E3%83%83%E3%82%B0) が一般的ですが今まで使い慣れたpry-byebugも使ってみたかったので設定してみました。Rubymineのブレークポイントを使ったデバッグをするために必要なgemライブラリ(ruby-debug-ideやdebase)が入っていると競合して実行時にエラーになることがあったので、 bundle installで既存とは別ディレクトリにgemライブラリをインストールしました。

``` shell
### Gemfileにpry-byebugや関連のgemを追加
### debase, ruby-debug-ideがあればコメントアウト
================================================
#gem 'debase', '0.2.2.beta8'
#gem 'ruby-debug-ide', '0.6.1.beta2'

gem 'pry-rails'
gem 'pry-doc'
gem 'pry-byebug'
gem 'pry-stack_explorer'
gem 'rb-readline'
================================================

### bundle installを実行
[Tools] -> Bundler -> Install
Optional argumentsfor 'bundle install'に
--path vendor/bundle_pry-byebug
と入れてInstallを押す

### Rubymineを立ち上げなおす
```

後はコードに`binding.pry`と書いて通常の実行(※ デバッグ実行ではありません)すると対象の箇所で止まります。
![01.png](https://qiita-image-store.s3.amazonaws.com/0/20474/6087ce4f-6c35-4373-964e-13d5674d56be.png)