VC++の使い方

VC++の使い方 > VC++ Tips > エディタとVC++の大人な関係 > 秀丸エディタ
このページの内容
秀丸エディタとは
秀丸エディタとの連携
開発者のための秀丸
おすすめマクロ
ありがたいスポンサー様
All About ソフトウエアエンジニア
ネットで8%割引!自動車保険はアメリカンホーム・ダイレクト
人生の「チャンス」と「ピンチ」にモビット!
保険料が一生上がらない、保険料最大50%割引の一生涯の医療保険!

秀丸エディタとは

秀丸エディタは、Windows の有名なエディタです。シェアウェア(4000円)ですが、学生やフリーウェア作者は無料で使うことができます。詳しくはこちらをご覧下さい。

秀丸エディタとの連携

秀丸とVC++のツールに秀丸を登録しておくことをお勧めします。これによって VC++ で開いているファイルを秀丸で開くことができます。詳しくはold & newのサイトに書いてあるのでそちらをご覧ください。

私の場合、VC++ において Ctrl+H に秀丸を割り当てているので、プログラミングの手順は以下のとおりになります。

  1. 秀丸エディタでコードを編集
  2. VC++ に移動
  3. ビルド
  4. F4 でエラーを移動(VC++6.0の場合)
  5. Ctrl+H で秀丸の該当箇所を開いて編集

VC++ のエディタで編集する場合もあるので、VC++ のエディタと秀丸の両方ともがタイムスタンプをチェックして新しくなっていたら自動で読み込むように設定すれば快適です(やり方は、先ほど紹介したサイトにあります)。

開発者のための秀丸

関数一覧

秀丸には関数の一覧を表示する機能があります。メニューでいうと 『検索→強調→強調表示の一覧』 にありますが、デフォルトのショートカットキーは F11 に割り当てられています。C/C++ のプログラミングにおいては、ダイアログの中の 『関数一覧』 を選択するだけで、関数一覧を表示できます。

関数一覧
関数一覧

『移動』 ボタンを押すか Enter キーを押すと、選択中の関数の先頭に移動できます。ファイルの中で気軽に移動できて便利ですね。これとは別に、Ctrl+Shift+P で上の関数、Ctrl+Shift+N で下の関数に移動できるます。それぞれ、メニューの 『検索→強調』 にあります。

ダイレクトタグジャンプ

C 言語のプログラムが大きくなってくると、どの関数がどのファイルにあるかを思い出すのが大変になってきます。また、他人が書いたソースを読む場合は、どの関数がどのファイルのどの部分にあるかを探すだけで手間です。

そんな悩みを解消してくれるのがダイレクトタグジャンプです。関数の呼び出しもとでダイレクトタグジャンプを使うと、関数を定義している箇所にジャンプできます。


まずは、どのファイルにどの関数があるかのデータを取得する必要があります。メニューの 『その他→tagsファイルの作成』 から作成してください。実行したディレクトリに tags という名前のファイルが作成されます。

tagsファイルの作成
tagsファイルの作成

tags ファイルを作成したら、調べたい関数の上にカーソルを持ってきてから Ctrl+F10 を押してください。メニューの 『その他→ダイレクトタグジャンプ』 でもよいです。関数の定義箇所にジャンプできたら OK です。関数の定義箇所が別ファイルにある場合は、新たにファイルを開いてくれます。

さらに、バックタグジャンプ(Ctrl+Shift+F10)をすることによって、ダイレクトタグジャンプを行った場所に戻ることができます。連続してダイレクトタグジャンプしたあとに、まとめて何回かバックタグジャンプすることもできます。


ただし、この機能は C 言語限定だと言うことに注意してください。C++ ではクラスを定義したファイル名がだいたい分かっているとおもうので、そのファイルの中で関数一覧を表示することで実現するしかないでしょう。

おすすめマクロ

VC++風Homeキーマクロ

VC++ 風のHomeキーマクロです。キー割り当てで、『キー割り当て拡張』 にチェックをいれて、Home キーに割り当てれば、VC++のエディタっぽいHomeキーの機能をしてくれます。

// X座標を記録しておく
#startx = x ;

// 行頭移動
golinetop ;

// 行頭が半角スペースかタブ文字なら
while(1)
{
	if( code == ' ' || code == '\t')
	{
		// 半角スペースかタブ文字が以外の文字のところまでカーソルを移動
		right ;
	}
	else
	{
		break;
	}
}

// 呼び出し時の位置と同じなら行頭へ
if( #startx == x)
{
	golinetop ;
}

ファイラオープンマクロ

秀丸で開いているファイルがあるディレクトリをエクスプローラで開きます。別のファイラを使っている人は、"C:\\winnt\\explorer.exe" の部分をファイラのフルパスに書き直すとよいでしょう。私はこのマクロを、Ctrl + Shift + O に割り当てています。

run "C:\\winnt\\explorer.exe " + directory ;
// Win98 / Me の場合は、c:\\windows\\explorer.exe に変更しましょう