c++ builder > 外部エディタでコード編集時の編集合戦の回避策


動作確認
C++ Builder XE4

Sublime Textなどの外部エディタによる編集をしている中で、C++ Builder(以下IDEとする)との兼ね合いで変更が消える場合がある。

再現方法

だいたいの再現方法

  1. IDEにおいてソースをタブで開いておく
    • AlertParser.cpp
  2. Sublime Textにおいてソースを変更して保存する
    • AlertParser.cpp
  3. Sublime Textにおいてヘッダを変更して保存する
    • AlertParser.h
  4. IDEに戻るとモジュール AlertParser.cppのタイムスタンプが変更されました。読みなおしますか? と表示される
  5. はい(Y)を選択する
    • AlertParser.cpp は変更される

上記で AlertParser.h が変更されない場合がある。

そして、元の AlertParser.h の状態をIDEが復元したりして、Sublime Textで編集した情報が消える場合がある。

対策

外部エディタで編集する場合は以下のようにする

  1. IDEにおいて編集する cpp ファイルのタブを閉じておく
  2. Sublime Textで .cpp を編集
  3. Sublime Textで .h を編集
  4. IDEにおいて、プロジェクトマネージャ内のファイル構造において編集したファイル(AlertParser.cpp)上で右クリックして「ビルド」を実行してエラーがないか確認

これだと編集合戦にならない。

この使い方を始めて数時間、Sublime Text側のBookmarkが消える(ファイルの終端に行ってしまう)症状がなくなった気がする。

備考

標準のエディタを変更するという方法もあるかもしれないが、IDEの設定はできるだけデフォルトで使いたい理由がある.