MIFES

MIFES（マイフェス）は、メガソフト株式会社が販売しているテキストエディタである。1985年にPC-9800シリーズMS-DOS用 (MIFES-98) として初めて販売され、2023年3月現在Windows版が販売されている。MIL/W言語と呼ばれる組込のマクロ言語を実装しており、柔軟なカスタマイズが可能である。MS-DOSが主体の頃には高速かつ高性能なスクリーンエディタとして。
発売当初はソフトウェア開発を目的としたエディタであったが、バージョンアップによって文書作成機能が強化され、バージョン9でCSV編集モード、バージョン10でXML編集モードが追加された。またバイナリ編集モード、100GBまでのファイル編集、100個までの同時オープン、それにさまざまな文字コードに対応している。Windows版のバージョン8ではオンラインライセンス認証が必要になった。バージョン9ではライセンス条件が変わり、1ライセンスで2台のコンピューターとUSBメモリにインストールできるようになり、ライセンス認証は採用されていない。
関連機能.
自動コード判定.
ファイルを開くとき、内容を調べて文字コードを判別し、Shift_JISに変換して表示する機能。バージョン7までは、ファイルを閉じるときには、本来の文字コードに変換して保存できた。ただしShift_JISに変換して処理を行うためShift_JISで扱えない文字を編集できないという制限が存在したが、Windows版のバージョン8より内部処理がUnicodeに変更されShift_JISで扱えない文字も扱えるようになった。
なお、拡張子に応じてあらかじめ既定の文字コードを指定しておくことも可能である。
検索と置換.
現在編集中のファイルの中から、指定した文字列を検索あるいは置換する。検索文字列にはメタ文字（ワイルドカードおよび正規表現）の指定が可能。検索文字列を一括ハイライト表示することもできる。なお、正規表現の入力を支援するためのGUIも備わっている。MIFES独自の正規表現の方言はやや強く、PerlやECMAScriptなど他のプログラム言語やエディタの正規表現に慣れているユーザーはこの支援機能を用いると正規表現を完成させるのが楽になる。
なお、MIFES 9からはこれまでのMIFES独自の正規表現に加えて、Perl形式の正規表現もサポートするようになった。以前のバージョンの独自正規表現では不可能だった、直前のパターンの指定回数繰り返し、および先読み／後読みの肯定／否定といった柔軟かつ強力な正規表現を使うことができるようになる。
また、複数の文字列の組を一度にそれぞれ置換する「複数置換」機能も備えている。
グローバル検索.
ディスク内の指定フォルダ以下に存在するファイルの中から、指定した文字列を検索して一覧表示する。検索文字列にはメタ文字の指定が可能。検索結果一覧表示において各行をダブルクリックすると、該当のファイルを開いて該当の行に移動するリンク機能が備わっている。検索するファイルの拡張子およびタイムスタンプの範囲指定も可能。
グローバル置換.
ディスク内の指定フォルダ以下に存在するファイルの中から、指定した文字列を検索して置換する。
文書整形.
半角文字と全角文字の相互変換、センタリング、引用符挿入などの整形機能。バージョン9では、行のソート、行の単一化といった機能も追加されている。
ファイラ.
ファイル管理ツールとしてのファイラでは、MS-DOS上でのファイル一覧に似た画面上でファイル操作ができる。
マクロ.
ユーザーの一連のコマンド操作を記録して、マクロとして登録しておくことができるキーボードマクロ機能を備える。マクロは独自のコンパイル言語MIL/Wで実装されており、マクロプログラム（マクロソース）はMIFESアプリケーション自体によって自動生成されるほか、ユーザーがマクロソースを記述してライブラリとして登録することもできる。
バージョン管理ツールとの連携.
MIFESバージョン9では、バージョン管理ツールであるSubversionおよびMicrosoft Visual SourceSafe (VSS) との連携が可能となっている。MIFESのGUI上から、SubversionあるいはVSSのチェックアウト・チェックイン（コミット）、比較や履歴表示といった機能にアクセスできる。なお、Microsoft Team Foundation Server（TFS）には対応していない。
GUIのカスタマイズ.
MIFESは標準でタブMDI動作をするが、オプションでSDI動作に切り替えることも可能である。
メニューバー、ツールバー、コンテキストメニューのカスタマイズはもちろん、画面各部の色やツールバーで使用されるアイコンイメージさえもカスタマイズ可能となっている。またユーザーが自由にコマンドを割り当てて使用することができる「ユーザー定義バー」を作成することもできる。
カスタマイズ情報は項目ごとにファイルでインポート／エクスポートが可能となっており、以前のバージョンで作成したカスタマイズファイルを読み込むこともできる。