rubymineでのsurround.vimっぽい機能

surround.vimがないと生きてないんだって思ってた。
rubymineを使いはじめてわかったよsurround.vimがどんなに便利かって。

だが、rubymineにも似たような機能があった。 選択した文字列を"'で囲んでくれる。 まさに求めていた機能だ。

surround selection on typing quote or brace にチェックを入れて有効にできる。 設定だけどボタンポチって探していくより基本的に検索かけた方がはやいんで、設定画面だしたらsurと打てばこの項目がハイライトされるからチェックを入れる。

俺の環境だと、設定に少しはまってチェックが入っているのに有効にならなかった。 とりあえずチェック外してから再起動してもう一度チェック入れたら有効になった。 原因がわからないけどよくあることだ。

使い方は<C-w>で選択後、"とタイプするだけだ。 他にも便利なのが#だ。 選択後##{}の形で囲んでくれる。 これがすごいのは頭のいい括弧を付けてくれる点だ。 ダブルコート中なら#{}のみだが、ダブルコートで囲まれてないときはダブルコート付きで、"#{}"の形で囲んでくれる。

問題はidea-vimとの相性が悪いことだ。 例えば、viwで選択したとする。 ビジュアルモードである。 この状態だと"と打ってもダブルコートは挿入されない。 何も起きない。 何が言いたいかというと、rubymineのsurround機能はidea-vimを入れているとインサートモードでしか実行できない。 ノーマルモードの場合i<C-w>"が単語を囲むコマンドになるだろう。 ちょっと押しづらいので何かいい解決法がほしい。

だが、'surround'.vimでのcs'"はrubymineの方がごきげんだ。 シングルコートからダブルコートへの変える必要があったり、式展開がないのにダブルコートのままだったりしたら、ヒントが出て教えてくれる。 それからalt+Enter押せばrubymineがベストな括弧に修正してくれる。 さらにヒントへはF2を押せば勝手に移動する。 つまりファイル内のどんな場所にいても3タイプで修正が完了だ。

非常に便利なのでrubymineのsurround機能使ってない人がいたらぜひ使ってみてほしい。