matarillo.com

The best days are ahead of us.

31日間ReSharper一周 Day 3: ReSharperサバイバルガイド、あるいは、僕のキーバインドを知りませんか?

2012-12-30 18:17:12

元記事

31日間ReSharper一周」の3日目にようこそ。(これ実は土曜日分なんだけど、僕は土曜日に外出するから、金曜の晩に投稿している。)

ReSharperは最高だ。だけどもし使うつもりなら――特にバージョン2.5.x(この時点での最新版)なら――まずこのサバイバルガイドを読んでおく必要がある。

というのも、Visual Studioにはキーボードショートカットがたくさんある。ReSharperはそれをかなり変えてしまう。だから、変わったのは何で、どう対処したらいいのかを知っておかないといけない。

ReSharper 2.0は有無を言わさずキーバインドを差し替えるだけだった。ReSharper 2.5はご丁寧にも、あるキーストロークを最初に使おうとした時に、個々のキーバインドを差し替えていいかどうか聞いてくる……んだけど、前に戻って回答を訂正する方法がない――これでは余計にたちが悪い。ReSharperで最高の機能を呼び出せなくなってしまうかもしれないからだ。

だから、ReSharperを使い始める前にキーバインドのサバイバルガイドが必要なんだ。以下に記す。

ReSharperのばか丁寧な機能を切り抜ける

実は、2点にだけ注意すればいい。1つはよく使うショートカットの変更で、これは少ししかないから下で説明する。もう1つは、ReSharperショートカットの衝突ダイアログだ。

上で書いたように、ReSharperは既存のショートカットを置き換えていいか、ばか丁寧に聞いてくる。問題はショートカットを最初に使おうとしたときに聞いてくることで、そういうときって言うのは実際に何かしようとしている最中なわけだから、くだらない質問に答えてる場合じゃない。しかもどういう答えをしたとしてもアンドゥができないし、置き換えてしまったキーの代わりにどのキーを使えばいいのかも教えてくれないもんだから、その後に待っているのはかなり最悪のユーザー体験だ。

(誤解しないでほしいんだけど、ReSharperは最高の道具だ。使い始めるときにはこのダイアログボックスを通過しないといけないってだけだ。)

僕の経験にそって言えば、ReSharperのショートカットは全部受け入れるのが吉だ。そうすれば、変更された新しいショートカットに慣れてもいいし、我慢ならないとこについては元に戻してもいい。しかもReSharperがもうアホなダイアログボックスを出して邪魔するのをやめさせる事になる。

てなわけで、ReSharperをインストールしたら、ソリューションを開いて、どこかの引数リストにカーソルを持ってきて、Ctrl+Shift+Spaceを押すといいと思う。そしたら"ReSharperショートカットの衝突"ダイアログがポップアップする。

設定は「ReSharperのショートカットを使う」のままで、「ReSharperショートカットの全部に適用する」のチェックボックスにチェックを入れて、OKを押す。

はいこれで困難を1つ乗り切った。ダイアログにはもう邪魔されない。

後は、変更されたキーストロークを学ぶだけでいい。

変更されたキーバインド パートI: よく使うキー

僕が調べたから君たちは調べなくていいよ。もっとも必要になるキーストロークは以下だ:

  • Ctrl+Shift+Spaceではもう引数情報を表示できない。代わりにCtrl+P(ReSharperの強化された引数情報)を使おう。そっちのほうがいい――特にSystem.Drawingにおけるオーバーロードの暗黒面に直面してるときは。
    • Ctrl+Shift+SpaceはCtrl+Spaceの亜種になってる。これについては今月中に後で説明する。Ctrl+Space一族を説明するときにね。
  • F12(定義に移動)とCtrl+F12(宣言に移動)(結局何が違うの?)はCtrl+Bに置き換わった。Ctrl+クリックを使うこともできる。
  • Shift+F12(すべての参照の検索)はAlt+F7(使用箇所の検索)になった。通常は、代替ショートカットは元のより良くなってるんだけど……明らかにこれは違う。正直言って、F7はどうなんだ?
    • F12とShift+F12でドキュメント中のエラーおよび警告を一つずつ前進・後退するようになった。
  • 一時マクロを記録するCtrl+Shift+Rと、それを再生するCtrl+Shift+Pはもう使えない。これは痛い。Ctrl+Alt+Shift+Rとかでいいから残しておいてほしかった。
    • Ctrl+Shift+Pは「パラメータ情報――前のシグネチャへ移動」だ。
    • Ctrl+Shift+Rは「リファクタする」で、このことが、マクロを記録するキーストロークがなくなったにもかかわらずそこまで動揺してない主な理由だ。マクロよりずっと使いでがある。ほんとだよ。

パートII: 他に注意すべき変化

多くの人が毎日使うものではないけど、それでも重要だから注意すべきことがらは以下だ:

  • Ctrl+キーというプリフィックスのいくつか(Ctrl+B、Ctrl+D、Ctrl+E、Ctrl+F1、Ctrl+W)はもうプリフィックスではなく、独自の機能を持ったコマンドだ。たとえば、Ctrl+B、Ctrl+Cはブックマークの削除に使われていた。でも今はCtrl+Bは「宣言へ移動」だから、Ctrl+Bで始まる複数キーのコマンドはもう利用できない。Visual Studioにはこれらの多くに対してすでに代替キーストロークが用意されている(例えば、Ctrl+Bコマンドの多くは、Ctrl+Kで使うこともできる)し、ごく一部についてはReSharper独自の代替キーストロークが追加されている。
    • Ctrl+Bは、「宣言へ移動」だ。
    • Ctrl+Dは、「テキストの複製」だ。
    • Ctrl+Eは、「最近使用したファイルへ移動」だ。
    • Ctrl+F1は、「ヘルプ―操作方法」だ(以前はCtrl+F1、Hだった)。
    • Ctrl+Wは、「単語を選択/選択範囲の拡張」だ。
  • もしCtrl+Alt+Downを使ってMDIリストを表示していた(ドキュメント領域の右上で下矢印をクリックすることと同じ)としても、そのキーストロークはもう使えない。
    • Ctrl+Alt+UpおよびCtrl+Alt+Downは、「前の項目に移動」と「次の項目に移動」だ。
  • 検索コンボボックスに移動するCtrl+/ (使ってた人なんているのか?)はもうない。Ctrl+Dなら表示されるが、エディタウィンドウにフォーカスがないときだけしか使えない。
    • Ctrl+/は、「選択範囲をコメントアウト/コメント解除」だ。
  • F7 (「コードを表示」) と Shift+F7 (「デザイナを表示」) は、F7だけで両者を切り替えられるようになった。イェイ!
  • F6はもうソリューションのビルドじゃない。代わりにCtrl+Shift+Bを使うこと。

上記は簡略版リストだ。ReSharperをインストールすると変更される全キーバインドの完全版リストも作っておいた。このリストには変更・削除されたものしか載せていないので、新規に追加されたものは載っていない。だけどリストは長くなった。でももし前は動いていたのに今はおかしくなってしまったキーストロークがあるなら、完全版リストをチェックしてほしい。(注意。僕はCtrl+Shift+Tをテスト実行に割り当てていた。Visual Studioのデフォルトでは別のものに割り当てられていると思う。「単語の入れ替え」か何かそういう変なのに。)


31日間ReSharper一周 インデックスへ戻る