
  n8 editor

                                                   Copyright 1992 Isao Nebashi
                                            Copyright 1995-1996 Takashi SHIRAI
                                           Copyright 1998-2000 SASAKI Shunsuke
                                         Copyright 2025-2026 Kobayashi Takashi

・解説
  n8 はモードレスなフルスクリーンのテキストエディタです。
  NxEdit を元に作られた ne というエディタを UTF-8 対応としたものです。
  主要な操作や編集方式を MS-DOS 系 OS で有名な Vz 互換にしていますので、MS-DOS
系 OS や Windows などで Vz、Mifes など WordStar 系テキストエディタを使っていた
方には使いやすいと思います。
  各種 Linux ディストリビューション、FreeBSD、macOS、Windows 10/11 で動作確認
しています。Windows 版の場合は Windows Terminal を使用してください。古いコマン
ドプロンプト等の conhost.exe を使用する環境では正常動作しません。
  ターミナルソフト TeraTerm、RLogin、PuTTY での動作も確認しています。
  文字コードは自動判別して UTF-8 に変換して編集し、保存の際には元の文字コード
に戻します。
  ただし UTF-16LE/UTF-16BE の場合は BOM が付いていないと正しく判別できません。

  Windows 版の場合、以降の ~/.n8 は %USERPROFILE%\.n8、/usr/local/etc/n8/ は
n8.exe の存在するフォルダに置き換えて読み解いてください。
  ユーザー名が takapyu の場合 %USERPROFILE%\.n8 は C:\Users\takapyu\.n8 といっ
たフォルダ名となります。
  Windows 版の場合、鬼雲の onigmo.dll があれば正規表現による検索が使用可能とな
ります。同梱の onigmo.dll は https://github.com/k-takata/Onigmo から取得して
x64 用にビルドしたものです。ライセンスは onigmo_COPYING を参照してください。

  このドキュメントは ne の man のテキストを元に n8 向けに修正したものです。
  一通り修正はしましたが、ne の場合の動作で現状の n8 と動作が異なる場合があり
ますのでご注意ください。その場合は現状の動作が正しいです。

・起動
  オプションは以下の通りです。

  -j: メッセージを日本語にします。

  -e: メッセージを英語にします。

  -r: 最後に編集していたファイルを開きます。

  -c: ロックファイル(~/.n8/n8lock)を削除して起動します。
      n8 が全て終了しているにもかかわらず既存のファイルをオープンする際に「既に
      オープンされています。」と表示されてしまう場合、このオプションを付けて起
      動してください。

  -D name=val: 内部変数 name に val を定義します。

  +line: 編集開始する時の行番号を vi 互換方式で指定します。

  ファイルを指定しない場合、ファイル名入力待ちとなり、そこで入力せずに Enter を
押すとファイラーが起動します。
  履歴にあるファイルをオープンした場合、前回終了時のカーソル行に移動します。

・画面構成
  n8 の画面は最上行以外は基本的にエディタ画面です。最上行は編集ファイルに対する
情報を表示するステータスバーです。
  リードオンリーモードの場合、デフォルトでは背景色が水色になります。
  ステータスバーの内容を説明します。

  ページングモード
    左端の一文字はページ切替えのキー操作でどういう挙動をするかを示しています。

  P: 通常のページングモード
  S: 文字列検索モード

  インサートモード
    次の一文字は文字を打ち込んだ時に上書きするのか、挿入するのかを示しています。

  i: 挿入モード
  o: 上書きモード

  ブロックモード
    ブロックモード中は [] が反転表示されます。
    縦二分割の場合は表示しません。

  現在編集位置
    次の数値は現在編集中の行を示し、: を挟んで次の数値は現在編集中の位置(桁)を
  示します。

  インジケータ
    現在のカーソル位置を表示します。

    オプションのシステム情報の表示が ON の場合、インジケータではなく、下記の文
  字コードからテキスト中のカーソル位置までを表示します。

  文字コード
    [] の中はカーソル位置の文字の UTF-8 コードです。16 進数表記となります。

  編集中のファイルのサイズ。
    編集中のファイルサイズです。
    この数値は実際にバッファにある文字のバイト数なのですが、UTF-8/LF の場合で計
  算しているため、UTF-8 以外のモードの場合や CRLF モードの場合のサイズは正しく
  ありません。
    縦二分割の場合は表示しません。

  テキスト中のカーソル位置
    編集の行がファイル全体の大体何 % 位の位置かを示します。

  現在の対象ファイル情報
    最後の "1UL  /home/takapyu/n8.txt" のような表示は編集対象の情報を示します。
    処理の都合上 Windows 版でもフォルダ区切りは \ ではなく / になっています。
    数字は編集しているファイルの番号で、次の二文字が編集中のファイルの文字コー
  ドと改行コードの種類を示します。

    E: EUC
    S: SJIS
    J: JIS
    U: UTF-8
    u: UTF-8 BOM 有
    L: UTF-16LE BOM 有
    B: UTF-16BE BOM 有

    L: LF
    +: CRLF
    C: CR

    その次の一文字はそのファイルを既に変更したかどうかを示します。

     : まだ変更していない
    *: 既に変更している
    R: リードオンリーモード

    そして最後にフルパスのファイル名が続きます。
    縦二分割の場合はファイル名のみの表示となります。

・機能説明
  キー操作の説明に例示するキーは全て標準設定に従っています。
  ^ は Ctrl、\ は Shift、@ は Alt となります。例えば ^Q は Ctrl を押しながら Q
を押すという事になります。

  行編集とテキストの変更フラグ
    行の中で編集を行ってもその時点ではまだ修正した事にはなりません。
    カーソル移動のキー操作等によりその行を離れたり、ファイルセーブ等のキー操作
  を実行した時点で始めて その行が更新したのかを調べます。

    つまり間違った文字入力や削除を行ってしまっても行移動するまでならば、元の文
  字列に戻しさえすれば修正した事にはなりません。
    この時、行編集の取り消しのキー操作 (^QL) により、行編集前の状態に戻す事も可
  能です。

  キーボードマクロ
    一連のキー操作をまとめて一つのキーに記憶させる機能です。
    キーボードマクロ登録開始のキー操作 (^_) により登録を開始し、覚えさせる一連
  のキー操作を行った後に、キー操作として登録されていないキーを押した時点で、そ
  のキーにそのマクロを割り当てる事が可能です。

  ページングモード
    ページ移動のキー操作(^R、^C)にはページングモードが存在します。
    システムガイド行の左端の一文字はこのモードを指し、P の場合は普通のページ切
  替えを意味し、S の場合は、ページ移動のキー操作で前後への検索を行います。

    ページングモード切替えのキー操作 (^@) によって、P と S を切替える事が可能で
  す。

  文字アンドゥ
    文字を削除するキー操作([DEL]など)で削除した文字・文字列は、削除文字バッファ
  にスタックされていきます。
    このバッファにスタックされた文字は削除アンドゥのキー操作(^U)により復活させ
  る事が可能です。
    この場合、削除文字バッファが溢れない限りは全て復活できます。
    ただし、上書きを行った文字はこの文字アンドゥでは復活できません。

  ブロックバッファ
    n8 はブロックバッファもスタック構造を持っています。 つまり、ブロックカット
  のキー操作 (^Y)、ブロックヤンクのキー操作(^KK)は、指定した行範囲をブロックバッ
  ファにスタックします。
    Windows 版の場合はスタックされたブロックバッファは同時にクリップボードにコ
  ピーされ、他のアプリケーションで使用可能です。

    このスタックされたブロックバッファは、積んだ順序と逆の順序でテキストに張り
  付ける事が可能です。

  バックアップファイル
    バックアップ機能を有効にしている場合、ファイルを書き出す時に、元のファイル
  のバックアップをとる機能です。
    バックアップファイルには、元のファイル名(拡張子含む)に、".bak" を付けたファ
  イルにリネームされます。

  文字コード変換
    ファイルの読み込み時は自動的にそのファイルの文字コードを判別し、内部表現で
  ある UTF-8 に変換します。(いわゆる)半角カナの変換も対応しています。
    文字コードの変換は Linux、FreeBSD、macOS の場合は iconv を使用しています。
  JIS は ISO-2022-JP-2、ShiftJIS は CP932 を指定して変換しています。ライブラリ
  によっては UTF-8 変換後の文字が想定外の文字になる場合がありますのでご注意くだ
  さい。
    Windows の場合文字コードの変換は MultiByteToWideChar や WideCharToMultiByte
  を使用しています。

    ファイルセーブ時は読み出した元の文字コードにより書き出します。編集中にも文
  字コードの変更が可能で、その場合変更した文字コードで書き出されます。
    改行コードも同様に変更可能で、変更した改行コードで書き出す事ができます。

    文字コードは自動判定していますが、判定ミスする可能性がありますのでご注意く
  ださい。文字化けした場合、F12 キーを押してオプション設定メニューを出し、正し
  いと思われる文字コードに変更後 [ESC]U で再読み込みしてください。

  ファイラ
    ファイルオープンのキー操作([ESC]Oなど)でファイルを開く場合、ファイル名を入
  力するプロンプトで、そのままリターンキーを押すとファイラが立ち上がります。

  端末への対応の強化
    端末の処理に termcap を利用し、エントリが足りない場合は、VT200 をベースに
  色々追加したシーケンスを使用しています。
    それだけではどうしても対応できない環境の為に、起動時に term.$N8_TERM と
  term.$TERM を読み込みます。
    修飾キー(Shift, Ctrl, Alt)とファンクションキーやカーソルキーの組み合わせに
  ついては可能な限り有効になるようにしていますが、動作しない場合は、ne 作者の作
  成した term.rxvt 等を参考にファイルを変更してみてください。
    Windows 用のターミナルソフト上で修飾キーとファンクションキーやカーソルキー
  の組み合わせが機能しない場合、ターミナルソフト側の設定変更で使える場合があり
  ますので、各ターミナルソフトのドキュメントを参照してください。
    なおターミナルソフトや OS 側で各種機能としてすでに割り当てられているキーの
  組み合わせは使用できませんのでご注意ください。

・ユーザーカスタマイズ
  n8 が使用する設定ファイルでパスが指定されていない場合、まずホームディレクトリ
の下の .n8 ディレクトリ(~/.n8/)を調べます。
  次にシステム標準のディレクトリ(/usr/local/etc/n8/)を調べます。
  つまり、各ユーザーのホームの下の .n8 ディレクトリが優先されます。
  これを設定ファイルの検索パスと呼びます。

  パスを含めた場合は、設定ファイルの検索パスは調べられません。

  n8 は起動時に設定ファイルの検索パスの n8rc を読みます。
  つまり最初に ~/.n8/n8rc を探し、無ければ /usr/local/etc/n8/n8rc を探します。

  n8 の標準の設定は Vz ライクな /usr/local/etc/n8/n8rc です。 
  これを ~/.n8/n8rc にコピーしてから設定の変更をしてみてください。
  この設定ファイルではオプション設定のみを行い、キー操作の設定や端末設定を行う
ファイルを呼び出すだけにしています。
  もちろん n8rc のみにこれら全ての設定をいれる事も可能ですがお勧めはしません。
  使用する設定ファイル群を ~/.n8 の下にコピーしてから、設定の変更を行い、n8rc
から呼び出すだけにする方がいいでしょう。
  インストール後 /usr/local/etc/n8 に置かれるファイルは下記の通りです。

  ファイル名    役割
  ------------- -------------------------------------------------------
  n8rc          デフォルトと同じ内容の設定サンプル
  n8rc.tk       n8 の作者が使っている設定

  key.vz        Vz ライクなキーアサイン
  key.tk        n8 の作者が使っているキーアサイン
  key.eff       ファイラーのキーアサインとオプション設定
  key.system    システムキーのキーアサイン

  n8keyword     キーワード表示設定

  term.xterm    環境変数 N8_TERM か TERM が xterm の時の端末固有の設定
  term.xterm-256color   環境変数 N8_TERM か TERM が xterm-256color の
                        時の端末固有の設定
  ------------- --------------------------------------------------------

  設定ファイルの基本的な記述方法は UNIX でよくある行指向の物です。# 以降行末ま
でをコメントとします。

  制御命令は以下の通りです。

  !I file:
    file で示されたファイルを読み込みそれを設定として使います。
    そのファイルを処理し終った後はこの次の行から再開します。
    この時パスが指定されていない場合はまず ~/.n8/file を読もうとし、見つからな
  ければ次に /usr/local/etc/n8/file を読みにいきます。

  !R V: 次の行以降でオプション設定を行います。

  !R D: 次の行以降で [BS] や [DEL]、[UP] などの特殊文字を定義します。
        これにより termcap で吸収しきれない端末依存の問題に対処できます。

  !R K[:region]:
    次の行以降でキーアサイン、つまりキー操作の設定を行います。
    region を省略した場合、エディタのメインでのキーアサインで、sys を指定した場
  合はメニューなどで使用されるキーアサインで、eff を指定した場合はファイラーで
  使用されるキーアサインを意味します。

  !R M:region
    次の行以降でメニュー項目を設定します。
    メニュー項目の最初の文字はアクセレータキーで、その文字を入力すると項目を即
  座に実行します。二文字目は区切り文字で使用されません。三文字目からが項目内容
  となります。
    region は今のところ mask のみで、ファイラーのマスクメニューの項目を設定し
  ます。
    ワイルドカードが使用できます。ファイル名部分の * は省略できます。複数指定
  する場合スペースで区切り、全体を "" で囲ってください。
    例) "T).txt .info"           # *.txt *.info と同じ
    ファイルマスクの正規表現を有効(MaskReg=On)にして $ を使用したい場合は ''
  で囲うか、\$ と表記してください。
    例) 'T)\.(txt|info)$'
        "T)\\.(txt|info)\$"
    記述例は設定ファイルの key.eff を参照してください。

  変数は以下の通りです。() は {} と記述する事もできます。

  $(name): 内部変数 name に置換します。

  $*(name): 環境変数 name に置換します。

  $?(hex): 16進数の値 hex をそのままキャラクタコードとして置換します。

・オプション
  設定できるオプションです。[] の中に省略した場合のデフォルト値を示します。
  オプション名や設定項目は大文字小文字を区別しません。
  例えば ansicolor=off としても大丈夫です。
  スペースが入る場合は "" または '' で囲ってください。
  "" で囲う場合、\ はエスケープ文字となります。' は \'、" は \"、\ は \\、
$ は \$ と表記します。
  '' の場合は \ はエスケープ文字になりませんのでご注意ください。

  AnsiColor [On]
    ANSIエスケープシーケンスによる色を用います。

  Color256  [Off]
    256 色使用可能とします。色指定の変数も 256 色用に指定する必要があります。
    On とした場合、AnsiColor も On になります。

  CRMark    [Off]
    各行の終りのリターンコードを見えるように表示します。 
    オプションメニューで変更できます。

  TabMark   [Off]
    タブコードを見えるように表示します。
    オプションメニューで変更できます。

  EOF       [On]
    ファイル末尾に [EOF] を表示します。
    オプションメニューで変更できます。

  Number    [Off]
    行番号を表示します。
    オプションメニューで変更できます。

  ZenSpace  [Off]
    全角スペースを表示します。
    オプションメニューで変更できます。

  ZenSpaceChar  [ロ]
    全角スペース表示時に使用する文字です。
    UTF-8 で 3 バイトになる文字のみ指定できます。
    記号の□は曖昧文字幅になるためデフォルトはカタカナのロとしています。

  SystemInfo    [Off]
    ステータスバーにインジケータではなく、システム情報を表示します。
    オプションメニューで変更できます。

  UnderLine [Off]
    カーソル行にアンダーラインを表示します。
    オプションメニューで変更できます。

  AutoIndent[On]
    オートインデントを使用します。
    オプションメニューで変更できます。

  Backfile  [Off]
    バックアップファイルを作成します。
    オプションメニューで変更できます。

  PasteMove [Off]
    文字列ペースト後にカーソルを移動します。
    オプションメニューで変更できます。

  Japanese  [On]
    メニューやメッセージを日本語で表示します。
    オプションメニューで変更できます。

  Ambiguous [1]
    曖昧幅文字の幅を指定します。指定可能な文字列は 1, 2, Emoji2 です。
    1 は幅 1 固定、2 は幅 2 固定、Emoji2 は幅 2 固定で絵文字も幅 2 とします。
    1 の場合コンソールソフトで曖昧文字幅や Ambiguous Characters width といった
  設定を 半角 や 1 となるようにしてください。2 の場合は同様に 全角 や 2 となる
  ようにしてください。
    Emoji2 は TeraTerm で Override Emoji Characters width が有効かつ 2 Cell と
  なっている場合に指定してください。
    各ターミナルソフトの設定についてはこのテキスト末尾にまとめてあります。
    オプションメニューで変更できます。

  TabStop   [8]
    タブカラムを設定します。
    オプションメニューで変更できます。

  IMEControl [Off] ※Windows 版は [On]
    ESC 押下、Y/N 問い合わせ、メニュー表示時に IME を自動的に OFF にします。
    Windows 版や TeraTerm、RLogin では機能しますが、Linux デスクトップ上のター
  ミナル等では機能しませんのでご注意ください。機能しないターミナルの場合、画
  面表示が乱れる事があります。
    オプションメニューで変更できます。

  MouseWheel [On]
    Windows 版のみ有効なオプションです。
    On でマウスホイールの操作を有効にします。
    On の場合、マウスによるテキスト選択や右クリックでの貼り付けは動作しなくなり
  ます。
    オプションメニューで変更できます。

  SearchWord [Off]
    ワードサーチを有効で検索します。
    検索オプションメニューで変更できます。

  NoCase    [Off]
    英大文字・小文字の区別を行わずに検索します。
    検索オプションメニューで変更できます。

  SearchReg [Off]
    正規表現を使用して検索します。
    正規表現中に改行は使用できません。
    検索オプションメニューで変更できます。

  OverWrite [Off]
    On で上書きモードになります。Off は通常の挿入モードです。
    [INS] キー押下で変更できます。

  CursorInsert [BlockBlink]
    挿入モード時のカーソル形状を指定します。指定可能な文字列は下記の通りです。
    Default または 0 でターミナルのデフォルトカーソル形状
    BlockBlink または 1 でブロックカーソル点滅
    Block または 2 でブロックカーソル点灯
    UnderlineBlink または 3 でアンダーラインカーソル点滅
    Underline または 4 でアンダーラインカーソル点灯
    CaretBlink または 5 で縦ラインカーソル点滅
    Caret または 6 で縦ラインカーソル点灯

  CursorOverwrite [UnderlineBlink]
    上書モード時のカーソル形状を指定します。
    指定可能な文字列は上記を参照してください。

  FrameChar [ASCII] ※Windows 版では [Frame]
    メニューや入力ウインドウの枠内の文字を指定します。
    指定可能な文字列は NoChar, ASCII, Frame, TeraTerm です。
    NoChar は枠内に文字を表示しません。ASCII は +-| を表示します。
    Frame は Unicode の罫線素片を表示しますが、Ambiguous の設定がターミナルと
  一致していないと表示がおかしくなります。
    Frame を指定した場合は DOS/V 版 VZ の表示と同じになりますが、Ambiguous=2
  の場合は縦線の横幅が太くなります。
    TeraTerm はコンソールソフトに TeraTerm を使用し、設定のエンコーディングの
  UnicodeをDEC Special Graphics へマッピングする が有効かつ 罫線素片 にチェッ
  クが入っている場合に指定してください。なお、枠線は二重になりません。
    罫線素片のチェックが外れている場合は Frame も指定できますが、Ambiguous=2
  の場合は罫線の文字幅を拡大したような表示になります。

  HideExt   [.o .bak] ※Windows 版では [.obj .bak .exe]
    ファイラーやタブ補完から除外するファイルの拡張子を指定します。
    ワイルドカードが使用できます。ファイル名部分の * は省略できます。複数指定
  する場合スペースで区切り、全体を "" で囲ってください。
    ファイルマスクの正規表現を有効(MaskReg=On)にして $ を使用したい場合は ''
  で囲うか、"" で囲って \$ と表記してください。

  MaskReg   [Off]
    ファイルマスクの指定を正規表現にします。

  Sort      [file]
    ファイラーで表示するファイルのソートのデフォルト値を設定します。
    file でファイル名、ext で拡張子、new で新しい順、old で古い順、large で大
  きい順、small で小さい順となります。
    ファイラーのソートメニューで変更できます。

  Locale
    n8 で使用する文字ロケールを設定します。
    指定が無い場合、環境変数 LANG があればその値、なければ ja_JP.UTF-8 を設定
  します。
    この設定は正規表現による検索やファイルマスクに影響します。

  NFD       [On]
    NFD 合成文字を有効にします。合成文字は濁点と半濁点のみ対応しています。
    macOS に TeraTerm で接続する場合、NFD=On の場合は漢字コードを UTF-8m に設
  定し、NFD=Off の場合は漢字コードを UTF-8 に設定してください。

  FileHistoryCount [30]
    ファイルの履歴を保存する数を指定します。

  DirHistoryCount  [10]
    ディレクトリの履歴を保存する数を指定します。

  NewFile   [On]
    ファイルオープン時に新規ファイルだった場合、問い合わせをします。
    ファイルメニューに新規ファイルオープンの項目を追加します。

  CExt      []
    ここで指定した拡張子のファイルをオープンすると、C 編集モードになります。
    { がある行で改行するとオートインデントした後にタブを追加し、左にタブがある
  状態で } を入力するとタブが削除されます。タブストップ数は CTabStop で指定し
  た値となります。
    ワイルドカードが使用できます。ファイル名部分の * は省略できます。複数指定
  する場合スペースで区切り、全体を "" で囲ってください。
    例) CExt = ".h .c .cpp"
    ファイルマスクの正規表現を有効(MaskReg=On)にして $ を使用したい場合は ''
  で囲うか、"" で囲って \$ と表記してください。

  CTabStop  [4]
    C 編集モードでのタブストップ数を指定します。
    オプションメニューで変更可能です。

  AskSave   [On]
    Off にするとファイルセーブ(file_save)実行時にファイル名ウインドウを表示し
  ません。

  AfterClose [Default]
    最後のファイルをクローズした後の動作を指定します。
    指定可能な文字列は Default, Input, Filer, Quit です。
    Default の場合、ファイル名を指定してオープンした場合はファイル名入力ウイン
  ドウ、ファイラーからオープンした場合はファイラーを開きます。
    Input の場合は常にファイル名入力ウインドウを開きます。
    Filer の場合は常にファイラーを開きます。
    Quit の場合は終了します。

  ExtLength  [4]
    ファイラーの拡張子の表示幅を指定します。

  KeyExt1    []
    キーワード表示の拡張子を指定します。
    例) KeyExt1 = ".h .c .cpp"
    ファイルマスクの正規表現を有効(MaskReg=On)にして $ を使用したい場合は ''
  で囲うか、"" で囲って \$ と表記してください。

  Keyword1   []
    キーワード表示の対象文字列を指定します。
    例) Keyword1 = "if else switch while for return"
    正規表現を有効(KeyReg?=On)にして $ を使用したい場合は '' で囲うか、\$ と表
  記してください。また ' " \ 等を記述する場合は "" で囲って \' \" \\ としてくだ
  さい。
    正規表現中に改行は使用できません。

  KeyReg1    []
    正規表現でキーワード検索を行います。
    指定がない場合は Off となります。

  col_key1   []
    キーワード表示の色を指定します。

    キーワード表示の設定は KeyExt1, Keyword1, col_key1 の全てを指定してください。
    KeyReg1 の指定はなくても大丈夫で、その場合 Off 扱いとなります。
    複数指定する場合 KeyExt2, Keyword2, col_key2 ... と番号を増やして設定します。
    数字が飛ぶとそれ以降は登録されませんのでご注意ください。
    同じ拡張子で複数のキーワード表示の色指定も可能です。

  以下は色指定です。指定がない場合標準色の白となります。
  0: 黒、1:赤、2:緑、3:黄、4:青、5:紫、6:水色、7:白
  Color256=On の場合、色番号は 0～255 が指定できます。
  B: ボールド、U:アンダーライン、R:反転

  col_block     [6R]
    ブロックモードの色です。

  col_linenum   [4]
    行番号の色です。

  col_ctrl      [4]
    制御文字の色です。

  col_crmark    [4]
    行末マークの色です。

  col_tab       [4]
    タブマークの色です。

  col_zenspace  [4]
    全角スペースの色です。

  col_statusbar [R]
    ステータスバーの色です。

  col_readonly  [6R]
    リードオンリー時のステータスバーの色です。

  col_frame     [R]
    メニューや入力ウインドウの枠の色です。

  col_sysmsg    [3B]
    システムメッセージの色です。

  col_search    [3R]
    検索時はマッチした文字列の色です。
    置換時は置換元文字列の色です。

  col_menuc     []
    メニューのカーソルの色です。

  col_menun     [R]
   メニューの通常の文字の色です。

  col_eff_dirc  [1R]
    ファイラーのディレクトリにカーソルがある時の色です。

  col_eff_dirn  [6]
    ファイラーのディレクトリの色です。

  col_eff_normc [1R]
    ファイラーのカーソルの色です。

  col_eff_normn []
    ファイラーの通常の文字の色です。

  col_ccomment [2]
    C/C++ のコメントの色です。
    CExt で指定された拡張子のファイルで有効になります。
    指定なしの場合(col_ccomment=)は色表示は行いません。

・キーアサイン
  [F01]～[F12]はファンクションキー、[UP][DOWN][LEFT][RIGHT]はカーソルキー、[BS]
は Backspace キー、[DEL]は Delete キー、[INS]は Insert キー、[PGUP][PGDN]はそれ
ぞれ PageUp/PageDown キー、[HOME][END]はそれぞれ Home/End キーとなります。
  MouseWheel=ON の場合 Windows Terminal でのマウスホイール操作は [WHUP][WHDN]
で受け取れます。
  ターミナル側で独自の機能に割り当てられているキーは n8 側では使用できません。
  例えば Linux のデスクトップ上のターミナルや Windows Terminal では [F11] は全
画面との切替となっており、n8 側では検知できません。
  Shift や Alt との組み合わせも機能しない場合が多いのでご注意ください。

  * ファイル処理
  ^KW [F02]   file_toggle
    現在編集中のファイルをトグルで切り替えます。

  ^KT [F03]   file_select
    現在編集中のファイルをメニューで選択して切り替えます。

  [ESC]O      file_open
    ファイルをオープンします。
    この時にファイル名を聞いてくるのですが、ここで何も入力せずにリターンを押す
  とファイラーモードに移ります。
    ファイル名入力時にタブキーでファイル名補完ができます。
    ファイル名補完ですが、同じファイル名が複数ある場合 bash とは異なりファイル
  リストは出ません。タブキーを押すたびにファイル名が切り替わります。
    既にオープンしたファイルを指定した場合は、そのテキストが編集対象のテキスト
  になります。

  [ESC]C      file_close
    対象のファイルをクローズします。
    この時、修正フラグが立っている場合は出力するかどうか聞いてきます。
    Y もしくはリターンを押せばセーブし、N もしくはスペースでセーブしません。
    この時 ESC を押すとこの操作を取り消して、編集に戻ります。

  [ESC]S      file_save
    現在編集中のファイルを保存します。 

  [ESC]R      file_readonly
    リードオンリーモードでファイルをオープンします。

  [ESC]L      file_copen
    現在編集中のファイルを閉じ、新しく別のファイルを開きます。
    ただし、新しいファイルを開く事ができない場合、元のファイルは閉じられません。

  [ESC]P      file_rename
    現在編集中のテキストのファイル名を変更します。 変更を行うとファイルの変更フ
  ラグが立ちます。

  [ESC]D      file_duplicate
    現在編集中のファイルを二重化し、分割して表示します。
    二重化した方はリードオンリーモードになります。

  [ESC]U      file_undo
    編集を放棄して同じファイル名のファイルを再度オープンします。 VZ と異なりカー
  ソル位置は移動しません。

  [ESC]I      file_insert
    カーソルのある行にファイルを挿入します。

  [ESC]X      file_aclose
    全てのファイルを一括クローズします。 変更フラグの立っているファイルのみ出力
  するか確認します。

  [ESC]Q      file_quit
    現在の編集は破棄して終了します。
    この時、修正フラグが立っている場合は出力するか聞いてきます。

  [F04]       file_split
    複数のテキストを編集している場合分割表示します。
    押すたびに全画面->横二分割->縦二分割->全画面と切り替わります。
    ターミナルソフトによっては分割中にキー入力で連続スクロールすると、編集して
  いないテキストの表示がぶれる事がありますが、スクロールを停止すれば正しい表示
  に戻ります。
    Windows 版の場合、分割状態ではスクロールがかなり遅くなります。

  ^QV         file_splitmove
    分割表示中に分割位置の移動を行います。
    カーソルキーで分割位置を移動し、Enter で確定します。ESC で中止できます。

  ^KR         file_readonly
    現在編集中のテキストのリードオンリーモードを切り替えます。
    リードオンリーモード中は文字の入力やファイルの保存はできません。

  * カーソル移動
  ^E [UP]     cursor_up

  ^X [DOWN]   cursor_down

  ^S [LEFT]   cursor_left

  ^D [RIGHT]  cursor_right
    カーソルを上下左右へ移動します。

  ^A          cursor_tkprev

  ^F          cursor_tknext
    カーソルを前、次の単語の先頭へ移動します。

  ^QS [HOME]  cursor_sleft

  ^QD [END]   cursor_sright
    カーソルを行の先頭、最後へ移動します。

  ^W          cursor_rup [lines]

  ^Z          cursor_rdown [lines]
    表示しているテキストをそのまま上下にスクロールさせ、カーソルの表示位置を変
  えずに行を移動させます。

  ^R [PGUP]   cursor_pup

  ^C [PGDN]   cursor_pdown
    ページングモードによってかわりますが、通常のページモードの場合は、カーソル
  の表示位置を変えずにテキストを 1 ページ上下に移動します。
    この時 1 ページとは行の数 -1 を意味します。
    サーチモードの場合はそれぞれ上方向・下方向への検索を行います。

  ^QE         cursor_sup

  ^QX         cursor_sdown
    カーソルを画面の上端、下端へ移動します。

  ^QR         cursor_top

  ^QC         cursor_bottom
    カーソルをテキストの先頭、末尾に移動します。 行ジャンプ

  ^QP         jump_before [slot]
    直前に記憶したカーソル位置に移動します。 このカーソル位置の記憶は、^QR ^QC
  ^QF ^QM ^QP ^QJ ^Q1～4で行われます。

  ^QM         jump_mark [slot]
    今のカーソル位置を記憶します。

  ^QJ         jump_line [line]
    指定した行番号にカーソルを移動します。

  ^K1～4      jump_mark [slot]
    今のカーソル位置をそれぞれ1番～4番のマークスロットに登録します。

  ^Q1～4      jump_before [slot]
    それぞれ1番～4番のマークスロットに登録された位置にカーソルを移動します。

  ^QG         jump_tag
    カーソルの指してる行にタグ情報が含まれている場合、そのタグ情報の指すファイ
  ル・行番号に移動します。

  * 編集
  ^M [CR]     line_cr
    カーソルの位置でその行を切ってリターンコードを挿入し、残りを次の新しい行に
  します。
    オートインデントが有効ならば次の新しい行には、元の行の先頭のスペース・タブ
  が移されます。

  ^U          char_undo
    直前に削除した文字や単語をカーソルの位置に挿入させます。

  ^P          char_input
    制御文字を入力します。

  ^N          line_new
    カーソルの位置 (正確にはカーソルのある行の直前) に新しい行を挿入します。

  ^QL         line_undo
    行編集を取り消し、編集前の状態にします。

  ^QU         char_upperlower
    カーソル位置以降のアルファベットの大文字小文字変換を実行します。
    カーソル位置は移動しません。

  ^KZ         char_zenhan
    カーソル位置以降の半角全角変換を実行します。
    カーソル位置が移動します。

  * 削除
  ^H [BS]     del_bs
    カーソルの直前の一文字を削除します。

  ^G [DEL]    del_char
    カーソルの位置の一文字を削除します。

  ^QH         del_tkprev

  ^T          del_tknext
    それぞれカーソルの直前・位置の単語を削除します。

  ^QT         del_sleft

  ^QY         del_sright
    それぞれカーソルから行頭・行末までを削除します。 

  ^B [F10]    block_start
    カーソル位置(正確にはその行の直前)を基準とした ブロック指定モードに
    なります。

  ^Y [F08]    block_cut
    カーソルの行もしくは、ブロック指定モードの場合そのブロックを、編集テキスト
  から削除し、ブロックバッファにスタックしていきます。

  ^J [F09]    block_paste
    ブロックバッファにスタックされた文字列があるならば、カーソルの位置に挿入し、
  そのスタックを破棄します。

  ^KK         block_yank
    カーソルの行もしくは、ブロック指定モードの場合そのブロックを、編集テキスト
  を変更せずに、ブロックバッファにスタックしていきます。
    ^Y block_cut と違うのは編集テキストを変更しない点です。

  ^KC         block_copy
    ブロックバッファにスタックされた文字列があるならば、カーソルの位置に挿入し
  ます。
    ^J block_paste と違う点は、挿入したスタックはそのまま変更しない点です。

  ^KY         block_kill
    ブロックバッファの全てのスタックを破棄します。

  ^KY         block_chlast
    ブロックの先頭と末尾を交換し移動します。

  ^KD         block_dup
    カーソルの行もしくは、ブロック指定モードの場合そのブロックを、そのまま複写
  し編集テキストに挿入します。

  * 検索・置換
  ^@          search_paging
    ページングモードを切り替えます。
    通常のページモードとサーチモードのみがあります。
    ハーフページやタイトルサーチなどの機能はありません。

  ^QF [F06]   search_in
    検索する文字列を指定します。入力ウインドウが出ている時に F12 を押すと検索
  オプションメニューを表示します。
    ワードサーチ、英大文字・小文字の区別、正規表現の設定を変更できます。
    入力は文字列を指定するのみで検索はしません。
    文字列が指定された場合、ページングモードがサーチモードになります。

  ^QA [F07]   search_repl
    文字列を置換します。

  ^QO         search_repl_redo
    直前に行った文字列置換を再実行します。

  ^L [F05]    search_getword
    カーソル位置の単語を検索文字列として取得します。

  ^R          search_prev

  ^C          search_next
    上方向・下方向への検索を行います。

  ^QK         match_bracket
    対応する括弧に移動します。

  * 雑多な処理
  ^_          misc_kmacro
    キーボードマクロの設定を開始します。

  ^V [INS]    opt_set "OverWrite"
    挿入モードと上書きモードを切り替えます。
    Windwos Terminal の場合 ^V はクリップボードからの貼り付けとなります。
    モード切り替えは [INS] を使用してください。

  [ESC]E      misc_exec
    子プロセスを実行します。

  [ESC]G      misc_insert_output
    子プロセスを実行し、出力をカーソル位置に取り込みます。

  [F01]       menu_file
    ファイルメニューを表示します。

  [F12] \[F01] menu_option
    オプション設定のメニューを表示します。
    検索文字列入力ウインドウが表示されている場合、検索オプションメニューを表示
  します。
    \[F01] はターミナルソフトによっては使用できませんのでご注意ください。

  ^KI         opt_tab
    タブのカラム数を指定します。

  [ESC]V      misc_redraw
    画面を再描画します。
    ターミナルの画面サイズが変更された場合に実行してください。

  * メニュー・文字列入力時
  [ESC]       Escape
    メニューなどを終了します。

  [CR]        Return
    メニューの選択、文字列入力の決定などをします。

  ^E [UP]     CursorUp

  ^X [DOWN]   CursorDown
    メニューの場合はメニューカーソルを上下に移動します。 
    文字列入力時はヒストリーの選択を行います。

  ^S [LEFT]   CursorLeft

  ^D [RIGHT]  CursorRight
    文字列入力時は、カーソルを左右に移動します。

  ^R          Scrolldown

  ^C          Scrollup
    メニューの場合、上下にページ移動します。

  ^W          Rollup

  ^Z          Rolldown
    メニューの場合、上下にロール移動します。

  ^QR         CursorTopSide

  ^QC         CursorEndSide
    メニューの場合、メニューの上端・下端に移動します。

  ^QS [HOME]  CursorLeftSide

  ^QD [END]   CursorRightSide
    文字列入力時、カーソルを左端・右端に移動します。

  ^H [BS]     Backspace
    直前の文字を一文字削除します。

  ^G [DEL]    DeleteChar
    カーソル位置の文字を一文字削除します。

  [TAB]
    新規ファイル名入力時はファイル名補完を実行します。

  [F12] \[F01] OptionMenu
    検索文字列入力時は検索のオプションメニューを表示します。
    ワードサーチ、英大文字・小文字の区別、正規表現の設定を変更できます。
    \[F01] はターミナルソフトによっては使用できませんのでご注意ください。

  * ファイラ使用時
  [ESC]       Escape
    ファイラを終了します。

  [CR]        Return
    ファイルを指す場合そのファイルをオープンし、ディレクトリを指す場合そのディ
  レクトリに移動します。

  ^E [UP]     CursorUp

  ^X [DOWN]   CursorDown
    カーソルを上下に移動します。

  ^R          PageUp

  ^C          PageDown
    カーソルを上下にページ移動します。

  ^W          RollUp

  ^Z          RollDown
    カーソルを上下にロール移動します。

  [TAB] [LEFT] [RIGHT] など WindowChange
    ウインドウが 2 枚ある場合、他方のウインドウにカーソルを移します。

  ^U          ReRead
    ディレクトリを読み込み再表示します。

  *           MaskClear
    マスクの設定をクリアして再表示します。

  /           ChangeDir "/"
    ルートディレクトリに移動します。

  ~           ChangeDir "~"
    ホームディレクトリに移動します。

  ^H [BS]     ChangeDir ".."
    一つ上のディレクトリに移動します。

  [SPACE]     MarkChange
    ファイル・ディレクトリをマークします。
    一つでもマークがある状態だと、ファイルの複写・移動・削除は、それぞれマーク
  に対して処理を行います。

  f           FileMenu
    ファイルメニューを表示し、ファイル操作を実行します。
    コピー、移動、削除、名前の変更、ディレクトリ作成、新規ファイル作成、シェル
  実行が選択できます。

  d           DirMenu
    ディレクトリメニューを表示し、選択したディレクトリに移動します。
    Windows 版の場合、現在有効なドライブと N8_PATH で指定したディレクトリと過
  去にファイルを開いたディレクトリが選択できます。
    その他の OS 版の場合、~ (ホームディレクトリ)と N8_PATH で指定したディレク
  トリと過去にファイルを開いたディレクトリが選択できます。
    過去にファイルを開いたディレクトリは DirHistoryCount で指定した数だけ保存
  されます。

  m           MaskMenu
    マスクメニューを表示し、選択した拡張子のファイルをファイラーに表示します。
    メニューの項目は !R M:Mask で設定できます。

  p           ChangeDir
    パス・マスクの入力となります。
    ディレクトリ名を入力すると、そのディレクトリに移動してファイラーの表示を更
  新します。
    ワイルドカードや正規表現(MaskReg=Onの場合)を入力すると、マッチしたファイル
  をファイラーに表示します。

  s           SortMenu
    ソートメニューを表示し、選択した項目でファイルをソートしてファイラーに表示
  します。
    ファイル名、拡張子、新しい順、古い順、大きい順、小さい順が選択できます。

  w           WindowNumChange
    ウインドウの数を 1 枚と 2 枚に切り替えます。

  a           MarkChangeAll
    マークが一つでもある状態の場合マークを全て消し、マークがない状態の場合全て
  のファイルをマークします。

  v           Redraw
    画面を再描画します。
    ターミナルの画面サイズが変更された場合に実行してください。

・環境変数
  HOME   n8rc ファイルを見つけるために使用します。

  SHELL  n8 から外部プロセスを呼び出す際に使用します。

  TERM   termcap を用いて端末エントリを読み出す際に使用します。
         N8_TERM が指定されていない場合は、n8 独自の端末設定を行う場合にも使用
       します。

  N8_TERM
         n8 独自の端末設定を行う場合に使用します。

  N8_PATH
         ファイラーのディレクトリメニューに表示されるディレクトリを指定します。
         複数設定する場合 : で区切ってください。
         Windows 版の場合は ; で区切ってください。

・関連ファイル
  ~/.n8/, /usr/local/etc/n8/
         設定ファイルの読み込み時に検索するディレクトリ

  ~/.n8/n8rc, /usr/local/etc/n8/n8rc
         起動時に読み込まれる設定ファイル

  ~/.n8/n8lock
         ロックファイル

  ~/.n8/n8file
         ファイル履歴保存ファイル

・ターミナルソフトの注意事項
  TeraTerm の場合、アンダーラインを On にするとカーソル行の文字が緑色になりま
すが、これは 設定 - ウインドウ の カラーの属性 Underline を選択して文字色を変
更できます。
  TeraTerm でメニューや入力ウインドウの枠に罫線素片を使いたい場合、設定 - エン
コーディングの UnicodeをDEC Special Graphics へマッピングする が有効かつ 罫線
素片 にチェックが入っている場合は FrameChar=TeraTerm としてください。
  罫線素片のチェックが外れている場合は Frame も指定できますが、罫線の文字幅を
拡大したような表示になりますので TeraTerm を指定する事を推奨します。
  Windows Terminal 上で n8.exe を実行する場合、現状では初期値 Ambiguous=1 とし
ていますが、将来曖昧幅設定ができるようになった際には変更する可能性があります。

  曖昧文字幅の指定に対応する設定は下記の通りです。
  Ambiguous = 2
    TeraTerm
      設定 - エンコーディング の Ambiguous Characters width を 2 Cell
      Override Emoji Characters width のチェックを OFF
    RLogin
      サーバー設定 - スクリーン - 制御コード の ?8428 のチェックを OFF
      チェック OFF で Aタイプを全角で表示 となります。
    PuTTY
      ウインドウ - 変換 の リモートの文字セットを UTF-8 (CJK)
    GNOME-Teminal
      設定 - プロファイル - 互換性 で 曖昧幅の文字 を 全角
    Xfce4 端末
      設定 - 互換性 の 幅があいまいな文字 を 全角
    macOS ターミナル
      設定 - プロファイル で Unicode東アジアA(曖昧)の文字幅をW(広)にする の
      チェックを ON

  Ambiguous = 1
    TeraTerm
      設定 - エンコーディング の Ambiguous Characters width を 1 Cell
      Override Emoji Characters width のチェックを OFF
    RLogin
      サーバー設定 - スクリーン - 制御コード の ?8428 のチェックを ON
      チェック ON で Aタイプを半角で表示 となります。
    PuTTY
      ウインドウ - 変換 の リモートの文字セットを UTF-8 (Non-CJK)
    GNOME-Teminal
      設定 - プロファイル - 互換性 で 曖昧幅の文字 を 半角
    Xfce4 端末
      設定 - 互換性 の 幅があいまいな文字 を 半角
    macOS ターミナル
      設定 - プロファイル で Unicode東アジアA(曖昧)の文字幅をW(広)にする の
      チェックを OFF

   Ambiguous = Emoji2
    TeraTerm
      設定 - エンコーディング の Ambiguous Characters width を 2 Cell
      Override Emoji Characters width のチェックを ON とし、2 Cell に設定

・最後に
  大本の NxEdit の作者の根橋 勲＠セイコーエプソンさん、Ｎｅｃｏ＠任天堂さん、
ne の作者 erukiti さん、鬼車の作者の K. Kosako さん、鬼雲の作者の K.Takata さ
んに感謝します。
  ソース一式や ne, NxEdit のドキュメントは https://github.com/nanshiki/n8 から
入手できます。
  ne_doc/ に ne のドキュメント、ne_doc/old_doc に NxEdit のドキュメントがあり
ます。
  lib/ ディレクトリのコードは別のライセンスです。詳しくは lib/README.jp を参照
して下さい。
  なにかありましたら support@nanshiki.co.jp までご連絡ください。

                                                                       takapyu
