あまりに寒くて買い物行くのもヤだったんで、今日は冷蔵庫の残り物だけで籠ってましたよ。
さて、今週は珍しく有言実行して毎日何かしら書いてますが、今日は昨日の続き、俺的 Visual Studio 設定の覚え書きです。 昨日も書いたとおり、普段はこんな感じで Visual Studio を使いつつも、主に外部エディタでコードを書いてる訳ですが、C#の開発だと何かとコードが自動生成されるんで、Visual Studio のエディタ (以下VSエディタ) の方が明らかに便利なんですよね。いい加減VSエディタに慣れましょう、という流れでした。
でもね、何日か頑張ってはみたんだけど、
やっぱ慣れない!俺は俺のエディタで書く!
という結論に達しましたので、懲りずに今後も、可能な限り外部エディタで書く事に決定。今日は、Visual Studio と外部エディタを連携しやすくするための設定のまとめです。アプローチ1:外部ツールとして
「VisualStudio 外部エディタ」 などでググると、大抵こっちの方法がでてきます。標準のエディタを変えるのではなく、Visual Studio での作業中は基本的に VSエディタを使うけど、コードをゴリゴリ書きたい時は自分の好きなエディタを起動する、という感じですね。まずはメニューの 「ツール」>「外部ツール」 を選び、下の画面で好きなエディタを登録します。 この時点で、VSエディタでソースを開いていたり、ソリューションエクスプローラーでファイルを選んだ状態で、「ツール」 > 「"登録したツールの名前"」 を選べば外部エディタが開かれるのですが、どうせならソリューションエクスプローラーから右クリックで外部エディタを開けた方が楽ですよね。
そんな時は右クリックメニューをカスタマイズしてしまいましょう。メニューから 「ツール」 > 「カスタマイズ」 を選んで、下の画面のように 「プロジェクトとソリューションコンテキストメニュー|項目」 のメニューに 「ツール」 > 「外部コマンド8」 を追加すればOKです。 ちなみに、人によっては 「外部コマンド8」 じゃないかもしれません。 そもそも 「外部コマンド8」 って何だよって話ですが、さっき外部ツールを追加した時の登録リストの並び順 です。今回は8行目だったけど、もし登録したツールがリストの上から6行目なら 「外部コマンド6」。
以上、これでめでたくソリューションエクスプローラーの右クリックメニューで好きなエディタを開けるようになりました。
アプローチ2:標準のエディタを変えてしまえ
上の方法でも概ね便利なのですが、どうせならソリューションエクスプローラーでファイルをクリックすれば普通に外部エディタで開いてくれた方が楽ですよね。そこでもっと強引な方法。ソリューションエクスプローラーで cs ファイルを右クリックして、「ファイルを開くアプリケーションの選択」 を開き、「追加」 で好きなエディタを追加して、「既定値として設定」 してしまえば、標準で使うエディタを変更できてしまうのです。ただこれはいろいろ問題があって、
【快適な点】
- 普段、外部エディタを使う頻度の方が高い人なら快適になる。
- エラー一覧をダブルクリックすると外部エディタが開いてくれるようになる。 ただし、エラー行にジャンプはしてくれない (中途半端だナァ)
【不便な点】
- エラー一覧から一発で外部エディタが開けるのは嬉しいんだけど、たまに VSエディタで開きたくなっても開く手段がない。
- デバッグ中に ブレークして呼び出し履歴とかをクリックした場合も外部エディタが開くので、それはさすがに余計なお世話。 そしてこれまた VSエディタで開きたくても開く手段がない。
とにかくデバッガが壊滅的に使いにくくなるので、さすがにこれは無茶しすぎか。一見いろいろカスタマイズできるようで、詰めが甘いんだよなぁVSは。VS2013 で改善されてたりしないかなぁ。
その他、外部エディタと連携するために必須の設定
メニューから 「ツール」 > 「オプション」 > 「ドキュメント」- 「環境外のファイルの変更を検出」 をチェック
- 「保存する場合、変更を自動的に読み込む」 をチェック
これらをチェックしておかないと、外部エディタでソースを変更しても、なかなか Visual Studio が気付いてくれません。なお、チェックしたとしても、たまに検出がワンテンポ遅れるみたいです。
また、同じソースをVSエディタと外部エディタで同時に開いてしまうと、なかなか変更が反映されなくなる事があるので、同時に開かない ようにしましょう。普段はともかく、デバック中は勝手にソースが開いてしまい、この状態になりがちです。
その上さらに、うっかりVSエディタ側でソースを編集してしまうと、最悪ソースが退化したり大混乱になるので、VisualStudio がコードを自動生成する可能性があるソースと、外部エディタでしか触らないソースは明確に分ける といいと思います。
といったところで、これだけでだいぶ時間を食ってしまいましたが、やっと落ち着いてコードを組める環境は整ったので、やっと明日からはノウハウをぽろぽろ書いて行けるかと思います。