************************************************************************
(6).INI ファイル
************************************************************************
  - ワークディレクトリーにxe.iniをおいてください。(::xe.ini)
  - 省略値のひな型は "xe -i" で上がった後にINI コマンドで再出力できます.
    INI ファイルを修正しておかしくなった場合にそうしてください
  - [FUNCTION] セクション
      .指定例

       (機能名)              (キー名)    (コマンド名)  (コマンド別名)
        Swap              =   F9        = SWA        =  W

      .機能に機能キー/コマンド名を重複のないように割り当てます.
       但し罫線文字は日/英モードで異なりますので同じキーを割り当ても
       構いません.
       また使用する画面のタイプに重複のない場合は 2 機能までは 1 キーに
       重複割り当てできます.
       例えば F10 は 編集画面では右シフト、DirList画面ではコマンド複写の
       機能が割り当てられています。
      .使用できるキーと指定方法は INI ファイルの中を参照して下さい.
       Shift+Esc など OS/2,Windows が インターセプトしてしまうキーもある
       のでそれらとの重複に注意して下さい.
      .Alt+文字キーで文字キーが (-) (:)などを使う時はキーボードの型の
       相違に注意して下さい
      .機能への割当て文を,単に行全体をコメント化するだけでは省略値の
       割当が残ります, "=" の後に # を挿入して割当なしを明示指定して
       下さい.重複エラーが出た場合は省略値との重複もチェックしてください
       (*) の付いたキーは固定使用していますので変更出来ません
       またコマンドオペランドを必要とする機能は原則コマンド名設定のみで
       キーは割り当てできません.
      .Alt+, Ctrl+, Shift+ALt+, Shift+Ctrl+ の組み合わせが使用できます
       Shift+ALt+, Shift+Ctrl+ は Fn, Ins, Del, 方向キーとのみ組み合わせが使用できます
      .Linux の場合 ショートカット キーとして設定されている場合もあるので
       その場合 これらのキーを利用する場合は Linux の設定の変更が必要になります
       Shiftキー無し(A+Fn,C+Fn)がショートカットキー設定されている場合
       そちらもソートカットキーを無効にする必要があるかもしれません
      .=0.2 画面で割り当てを変更し場合保存時に変更が保存(xe!save!)され次回から有効になりますが
       INI ファイルは変更されません
       INI ファイルを使用している場合(::xe.ini ファイルが存在する場合)
       INI ファイルの方が優先されます(INIファイルのその機能の割り当てキーの
       数だけxe!save!の保存を上書きします)
       INI ファイルを更新するにはリスタート後に INI コマンド を使用してファイルを更新してください

   - [OTHER] セクション
       以下の各種のオプションを設定します,幾つかは exe パラメータで
       オーバーライドできます.(exe パラメータは "xe  /?" で表示されます)
       形式は    キーワード = 値.
       あるいは  キーワード = 桁数=CID=タイプ.  (CIDリストの場合)
       下記では値に省略値を記入してありますが INIコマンドによるの出力
       のINIファイルではコメントID(#)の後に省略値が括弧内に出力されて
       います.

       .Command_Stack      =20
          リトリーブコマンド用のコマンドスタックの深さ

       .Init_Heap_Block    =5
          初期化時にアロケートするメモリーサイズを64KBのブロック数で指定
          する(DEBUG用,0でもよい) (OS/2版のみ有効)

       .Confirm_CANCEL     =1
          更新ファイルを CANCEL する時,確認を取る(1)か否(0)か.

       .Confirm_SAVE       =1
          既存ファイルを SAVE で置換する時,確認を取る(1)か否(0)か.

       .Confirm_UNDO       =1
          UNDO する時,確認を取る(1)か否(0)か.

       .Dump_When_Err      =1
          内部エラー検知の時 DEBUG 用ダンプを取る(1)か否(0)か
          (OS/2版,WIN版ではABENDさせる)

#ifdef UNX
#else
       .R-Ctl_ENTER        =0
          右 Ctrl キーを実行キーとして使用する(1)か否(0)か,
          実行キーとするとき [FUNCTION]で特に割当てないとEnterキーは
          改行のみの機能となります.
          (左 Ctrl キーは単独の割り当てはできません)
#endif

       .InsertLine_Indent  =1
          行挿入の時カーソルを前の行の最初の文字の下に位置づける(1)か
          否(0)か

       .Change_ID_Type_C   =68="//"= C,H,CPP,HPP
        Change_ID_Type_ASM =68=";;"= ASM
        Change_ID_Type_DOC =71="||"= DOC,ME
        Change_ID_Type_4 --->Change_ID_Type_9
          変更タグ(CID)を設定する桁位置, 2 バイト前置文字, 拡張子"の
          リスト.2 バイトまでの後置文字を指定できますがそのときは
          前置文字の位置に"//,??"のように前置文字と後置文字を","で
          連結して指定します.
          Change_ID_Type_4 から Change_ID_Type_9 を使用する時も左辺の
          キ−ワ−ドは変更してはいけない
          桁位置=0 の行は無視されます

       .Fixed_CID_prefix   ="CID:"
          固定形式の変更タグ(CID)を使用する場合の指定形式(最大 15バイト)
          ここに指定した文字列がファイルの1行目にある時この文字列の
          後に続く文字列がこのファイルの固定形式の変更タグとなる.
          (")は囲み文字なのでスペースなどを含める場合にのみ必要です
          (0)-(E)"CID (Change ID:変更タグ)."を参照

       .Initial_Ins_Mode   =0
          立ち上げ時のモード, 1:INS(挿入) 0:REP(置換)

       .Box_Ins_Cursor     =1
          箱型(半角文字の下半分)カーソルを挿入モードに使う(1)か
          置換モードに使う(0)か

#ifdef UNX
#else
       .EOF(^Z)_Write      =3
          ファイル保存出力の時 0x1A をEOF文字として書くか否か
          0:書かない
          1:必ず書く
          2:入力ファイルと同じにする(新規ファイルにも書く)
          3:入力ファイルと同じにする(新規ファイルには書かない)
          (注)ファイルの部分編集で終端行指定ありのときはその行以降は
              単純コピーなので 0/1 指定の場合でも入力ファイルと同じに
              なります
#endif

       .ASCII_only         =0
          Ctl+文字キーに機能の割り当てをしなかった場合で,発生する制御
          文字コード(0x00-0x1f)を文字としてを受付ける(0)か否か(1).

       .Beep               =1
          Beepがうるさい時は 0 を指定する

#ifdef UTF8SUPP
       .UnicodeTbl        =filename
          コードポイントの印刷可非/DBCSの定義を変更したい時に使用するファイル名を与える。
          ファイルの記述方法はUTF8サポートを参照。
       .UnicodeTbl_Console=filename
          コンソール版用
#endif

       .EBCDIC 変換定義ファイル名

          EBCDIC_cfg        ="" #("::xeebc.map")# EBCDIC translation config filename



       .(J)Valid_Ctrl_char = 00000000000000000000000000000000
        (E)Valid_Ctrl_char = 00000000000000000000000000000000
                         x   0123456789ABCDEF0123456789ABCDEF
                     ctrl+   2abcdefghijklmnopqrstuvwxyz[\]6-
          (J)は日本語モード, (E)は英語モード用
          Ctl+文字キー(0x00-0x1f)を受付ける時受付けるキーの指定.
          1桁目が 0x00 に対応し最後が 0x1f に対応します.対応するバイトを
          0 にするとその文字を受付け 1 にすると入力不可とします.
          機能キー割り当てをした場合は文字入力にはつかえません.
      (注)0x1a は WindowsでテキストモードのAPIではEOF扱いされます。
          例えば type コマンドは0x1aがあるとそこでファイルが切れます。
          xe は バイナリーモードのAPIを使うので問題はありませんが
          xe の編集結果を他のプログラムに渡す場合は0x1aを禁止文字にしたほうが良いかもしれません。

#ifdef UNX
       .(J)Disp_trans_tbl = 00 = 1111111111111111
        (J)Disp_trans_tbl = 10 = 1111111111111111
        (J)Disp_trans_tbl = 70 = 0000000000000001
        (J)Disp_trans_tbl = 80 = 1000000000000000
        (J)Disp_trans_tbl = A0 = 1000000000000000
        (J)Disp_trans_tbl = F0 = 0000000000000111

       .(E)Disp_trans_tbl = 00 = 1000000011101111
        (E)Disp_trans_tbl = 10 = 0000000000010000
        (E)Disp_trans_tbl = 70 = 0000000000000001
        (E)Disp_trans_tbl = 90 = 0000000000010000
        (E)Disp_trans_tbl = F0 = 0000000000000001
#else
       .(J)Disp_trans_tbl = 00 = 1000000010101100
        (J)Disp_trans_tbl = 10 = 0101000010000000
        (J)Disp_trans_tbl = 70 = 0000000000000001
        (J)Disp_trans_tbl = 80 = 1000000000000000
        (J)Disp_trans_tbl = A0 = 1000000000000000
        (J)Disp_trans_tbl = F0 = 0000000000000111

        (E)Disp_trans_tbl = 00 = 1000000000000000
        (E)Disp_trans_tbl = F0 = 0000000000000001
#endif

#if defined(WXE)||defined(XXE)
    #ifdef WXE
        (J)Disp_tr_tb_wxe = 00 = 1000000000001100
        (J)Disp_tr_tb_wxe = 10 = 0000000000001000
    #else
        (J)Disp_tr_tb_wxe = 00 = 1000000000000000
        (J)Disp_tr_tb_wxe = 10 = 0000000000000000
    #endif
        (J)Disp_tr_tb_wxe = 70 = 0000000000000001
        (J)Disp_tr_tb_wxe = 80 = 1000000000000000
        (J)Disp_tr_tb_wxe = A0 = 1000000000000000
        (J)Disp_tr_tb_wxe = F0 = 0000000000000111

        (E)Disp_tr_tb_wxe = 00 = 1000000000000000
        (E)Disp_tr_tb_wxe = F0 = 0000000000000001
#endif

          (J)は日本語モード, (E)は英語モード用
          非表示文字を指定する.
          ここで非表示文字とした文字はつぎのは Disp_trans_char で指定の
          文字に変換され表示される.
          wxe/gxe 用は xxx_wxe のオプションを指定してください。

          形式:  x0 = yyyyyyyyyyyyyyyy
          x は 0 から F まで,
          y は 0 か 1(非表示文字) で 1行に 16 バイトずつ指定する
          1 行 全て 0 の行は指定不要.
          但し省略値を採らない場合は少なくとも 1 行は指定する.
          Windowsコンソール版の場合罫線文字などの文字サイズがコマンドプロンプトの
          フォント設定によって2桁表示になったり1桁表示になったりします
          適切なフォントがなければ、Disp_trans_tblで表示不能に設定か Disp_trans_char で FF以外を
          指定してください
          Tab_disp_charについてもおなじことがいえます

#ifdef AIX    //*** AIX ***
       .(J)Disp_trans_char =2E
        (E)Disp_trans_char =2E
#else
       .(J)Tab_disp_char  =FFFF #(FFFF)# Tab display char for Japanese mode. (FFFF means U-21be & U-21c0)
        (E)Tab_disp_char  =FFFF #(FFFF)# Tab display char for English  mode. (FFFF means U-21be & U-21c0)
#endif
          (J)は日本語モード, (E)は英語モード用
          前のDisp_trans_tblで非表示文字とされた文字を表示するのに
          使用する文字をヘキサ指定する.
          0x30-->0x39 は指定不可
          FF を指定すると省略値を使用

#ifdef AIX
       .(J)Tab_disp_char   =5E2C    // ^,
        (E)Tab_disp_char   =5E2C    // ^,
#else
       .(J)Tab_disp_char  =FFFF #(FFFF)# Tab display char for Japanese mode. (FFFF means U-21be & U-21c0)
        (E)Tab_disp_char  =FFFF #(FFFF)# Tab display char for English  mode. (FFFF means U-21be & U-21c0)
#endif
          (J)は日本語モード, (E)は英語モード用
          タブ(0x09) とその後のタブによる間隙を表示する文字をヘキサ
          指定する.0x30-->0x39 は指定不可
          TAB コマンド でも変更できます(INIファイルは変更せず、TABコマンドを優先)
#ifdef AIX
          省略値は  タブ文字    :'^'
                    タブスキップ:','
#else
          省略値は  タブ文字    :上矢印文字:(英)0x18,(日)0x1c
                    タブスキップ:右矢印文字:(英)0x1a,(日)0x1e
#endif

       .DBCSspace_dispchar=FF #(FF)# DBCS space display char. (FF means U-2591)
          U-2591 は "TAB" コマンドで変更できます
#ifdef LNX
          kon上で日本語スペース(EUC:0xa1a1)を表示する文字をヘキサ指定する.
#else
          日本語スペース(SJIS:0x8140)を表示する文字をヘキサ指定する.
#endif
          0x30-->0x39 は指定不可

#ifdef UNX
#else
       .Keyboard_Speed     =30
        Keyboard_Delay     =250
        Kbd_Speed_at_exit  =30
        Kbd_Delay_at_exit  =250
          エディターに入った時と出る時のキーボード タイプ速度
          Speed:同じキーを押し続けた時に受付けられる 1 秒当たりの文字数
                0 --> 31 の値を指定してください
          Delay:同じキーを押し続けた時に 2 文字目受付け迄の遅延時間
                250,500,750,1000 の4段階で指定してください
          (Speed,Delayの両方が 0 のとき設定はされません)
#endif

       .DirList_Indent     =1
          ディレクトリーリストでファイル名を表示する方法
          左端を揃える(0) か或は階層レベルで桁ずらしをするか(1)

#ifdef UNX
    #ifdef LNX
       .XPrint_Command     ="xprint.sh"
    #else
       .XPrint_Command     ="xprint"
    #endif
#else
       .XPrint_Command     ="XPRINT.EXE"
#endif
        XPrint_Command_DOS =""
        XPrint_Command_GCC =""
        XPrint_Command_WIN =""
        XPrint_Command_OS2 =""
#ifdef UNX
        XPrint_Command_LNX =""
#endif
          XPRint コマンドで使用するコマンド文字列を指定する
          文字列内に %1-->%9 の指定(PRIntコマンドのオペランドの挿入位置
          の指定)が可能.% が一つも指定されていない時はこのコマンド文字
          列とXPRintコマンドのオペランドを単純連結してコマンドを発行する
          OSによって異なるコマンドを使用したい場合はそのバージョンの
     サフィクス付きのパラメータを追加で指定する.
       (注)このオプションは次のPrint_Commandオプションより前に指定すること.

       .Print_Command      =""
        Print_Command_DOS  =""
        Print_Command_GCC  =""
        Print_Command_WIN  =""
        Print_Command_OS2  =""
#ifdef UNX
        Print_Command_LNX  =""
#endif
          ディレクトリー表示画面P 行コマンドで使用するコマンド文字列
          を指定する.文字列内に %1 の指定(ファイル名挿入位置の指定が可能).
          省略値(""指定の時)は "XPRINT.EXE" を使用
          "" か XPrint_Command と同じか XPRINT 文字列の指定がある時
          P 行コマンドは XPRINT の間接ファイル名指定機能により昇順印刷する.
          そうでない場合P 行コマンドはディレクトリーリストの逆順に指定の
          コマンドを呼び出す.
          OSによって異なるコマンドを使用したい場合はそのバージョンの
          サフィクス付きのパラメータを追加で指定する.
       (注)このオプションは前のXPrint_Commandオプションより後に指定すること.

#ifdef UNX
#else
       .Sub_Shell_Init     ="prompt $p$l"
          DOS コマンドで子シェルを開始する時,子シェルで最初に実行する
          コマンドを指定する.
          省略値のコマンドは親シェルと区別するためプロンプと文字を
          変更するものです($p はドライブと経路表示,$l は"<"表示)
      (注)WindowsNTでDOSバージョンを実行する場合はこの指定は無視されます
#endif

#ifdef LNX
       .LNX_Subshell_xe   =""
         xe curses版が ">" コマンドで使用する子プロセスのシェルPGM名.
         省略値は"dash"があれば"bash",でなければ"sh".
         (/bin/shが何にslinkしているかCHKして見て下さい。
          RH9,FC5ではbash,Kubuntu6,Ubuntu7ではdashでした)
       .LNX_ShellTerm_gxe =""
          DOS(省略形:">")コマンドあるいはメニューの File->Term で開く子窓のTerminalプログラムを指定する。
          省略値は次の順にインストール状況を調べ、なければ xterm とする。
          オプションを指定したい場合もここで設定する。例えば "gnome-terminal --maximize".
              "gnome-terminal",
              "konsole -ls",
              "xfce4-terminal",

       .LNX_CmdTerm_gxe   =""
          =6 画面以外で コマンド文字列指定のDOSコマンド(e.g. ">ps-ef")で開くコマンド毎の
          子窓のTerminalプログラムを指定する。
          省略値は
              "gnome-terminal -e",
              "konsole -e",
              "xfce4-terminal -e"

#endif

       .ユーティリティーツール名
          ディレクトリーリスト行コマンド "=","g"あるいは
          ユーテリティー画面3.12/3.14で使用するツール名を指定する。

          CompareFile_Cmd   ="xfc"   :ファイル比較ツール
          CompareDir_Cmd    ="xdc"   :ディレクトリー比較ツール
          Search_Cmcd       ="grep"  :文字列探索ツール

       .Bounds
          ディレクトリー、拡張子による省略値境界値を設定できます
          ファイル名の指定も有効です。
        Bounds            = .cob     =  7  72    # "."で始まると拡張子による省略値
        Bounds            = "g:\src\xe" = 10 80  # ファイル、ディレクトリー名はフルパス指定する

       .大きなファイルを開くとき確認をとる
        (省略値は 32ビット OS で 100MB, 64ビット OS で 1GB)
            LargeFileSize(MB) =1    #(100)# Size of large file to issue warning when open, 0 means no limit. ||vazd

*** 2022/12/04