VC++の使い方

VC++の使い方 > VC++ Tips > エディタとVC++の大人な関係 > UNIXのエディタを使う
このページの内容
UNIXのエディタとVC++を同時に使う方法
定期的に UNIX から Windows にコピー
UNIX 上にファイルをおく方法
Windows 上にファイルをおく方法
逃げ道
ありがたいスポンサー様
All About ソフトウエアエンジニア
ネットで8%割引!自動車保険はアメリカンホーム・ダイレクト
人生の「チャンス」と「ピンチ」にモビット!
保険料が一生上がらない、保険料最大50%割引の一生涯の医療保険!

UNIXのエディタとVC++を同時に使う方法

UNIX 畑の人は、Windows のエディタなんか使ってられないと思います。ここでは、UNIX で慣れ親しんだエディタと VC++ を組み合わせて使う方法を考察してみたいと思います。

VC++ を使う以上は OS を Windows に統一するのが自然でしょう。UNIX のエディタは、TeraTerm や PuTTy などの Windows クライアントから使えばよいでしょう。X じゃなきゃ嫌だ、なんて言う人は Cygwin+XFree86 をインストールして、 rootless モードで X サーバーを立ち上げるのがよいでしょう。


さて、次に問題となるのは、ファイルをどのように同期を取るかです。UNIX のエディタで編集しても、その変更を VC++ が読み取れないとどうしょうもないですね。考え付く方法を次にリストアップしてみます。

これらについて、具体例と私の所感を記しておきます。どれが一番優れていると思うかは人それぞれだと思います。どうぞ、しっくり来る方法をさがしてみてください。

定期的に UNIX から Windows にコピー

UNIX 上のファイルと Windows 上のファイルを同じものにするために、毎回 UNIX から Windows にコピーする方法が考えられます。

定期的にコピーするイメージ
定期的にコピーするイメージ

ただし、この方法は、ひとえにめんどくさいですね。開発に集中してくると、同期をとるのを忘れたりして、混乱してしまうことも起こるでしょう。逃げ道として、数分おきに cron で定期的に rsync という方法も考えられますが、この場合、常に UNIX 側が最新のファイルでなくてはならず、VC++ のエディタから編集しても rsync によって上書きしてしまうこととなってしまいます。

いずれにしても、この方法はできれば避けたいところです。そこで、同じファイルを参照する方法が思いつきます。

UNIX 上にファイルをおく方法

まずは、Linux 上のファイルに統一する方法を考えてみます。Windows から UNIX のファイルシステム上のファイルを利用する方法です。メジャーどころでいくと Samba や NFS がありますし、最近話題の WebDAV もあるでしょう。他にもいろいろあると思いますが、筆者が知っているのはそれぐらいです。

UNIX 上のファイルに統一する
UNIX 上のファイルに統一する

Samba

バージョン2.0.10-ja-1.2 では、UNIX 上でファイルを更新しても VC++ はファイルが更新されたことを認識していませんでした。あるソースファイルを UNIX で編集したのち、VC++ でビルドしても変更されたソースファイルをリコンパイルしてくれないわけです。

ところが、バージョン2.2.7a-ja-1.1 に上げてみたところ、VC++ のコンパイラはファイルの更新を認識してくれました。これで、ビルド時に不具合が発生することはなさそうです。ただし、VC++6.0 のエディタは、未だにファイルが更新されたことを自動的に検知してくれませんでした。秀丸ならしてくれたのに…。

NFS

NFS ならいけそうな予感もするんですが。Windows から NFS を見るためには、Microsoft 社の Service for UNIX(有料)を使うのが無難でしょうか。試した方がいらっしゃったら連絡ください。

WebDAV

WebDAV は最近注目されているファイルシステムの構築方法です。利点は、UNIX と Windows が同じサブネットにいなくても使える点でしょう。私は、試したことないです。

Windows 上にファイルをおく方法

では、Windows 上のファイルを UNIX から見に行く方法を考えてみます。

Windows 上のファイルに統一する
Windows 上のファイルに統一する

smbmount を使う

Samba パッケージに付属してくる smbmount を使うと、Windows の共有ファイルを UNIX ファイルシステム上にマウントすることができます(Linux 限定らしい)。smbmount を使って、TEST というコンピュータ名の sample という共有ファイルを /mnt/win にマウントするには

smbmount //TEST/sample /mnt/win [-o <オプション>]

とすればよいでしょう。オプションには、

username ユーザー名
uid マウント後のファイル所有者
gid マウント後のファイル所有グループ
fmask マウント後のファイルパーミッション

などを、カンマで区切って指定できます。マウントするので、sudo しないといけないかもしれません。

さて、smbmount を行った場合ですが、UNIX でファイルを変更すると、しっかりと VC++ でも変更を読みとることができます。まさに、エディタだけ UNIX 化を実現することができます。

ビルドの結果は、<プロジェクト名>.plg という名前で保存されるので、この内容を解析して、エラー箇所にとぶようなマクロを作成するとデバッグ効率が上がるかもしれませんね。

NFSを使う

SOSS-NFSという Windows を NFS サーバーにしてしまうソフトがあるらしいです。私は試したことないです。

逃げ道

上のどれも嫌だという人のために。

XXXX for Win32

UNIX 系の多くのエディタは、Windows に移植されています。vi 系の gvim, Emacs 系の Meadow などです。これを使うというのも折衷案として素敵でしょう。

VNC

クライアントに Windows を使わないなら、この方法ぐらいでしょう。Windows をネットワーク越しに操作することができます。でも、、、それなりに負荷がかかるんですよ。