###############################################################################

	se version 2.0

	簡易スクリーンエディタ for Linux(2008年 4月)

					www.suwa-koubou.jp

###############################################################################

【概 要】
 Linuxコンソール用の簡易スクリーンエディタです。
 JIS、シフトJIS、EUC、UTF-8の各漢字コードに対応していますので、日本語表示が可
能な端末では日本語編集が可能です。
 MS-DOS上の多くのスクリーンエディタと同様にファンクションキーに機能を割り付け
ています。

【ダウンロード】
 ソースファイル一式 se_201.tgz

【インストール】
 ダウンロードした se_201.tgz ファイルを適当なディレクトリに展開し、展開により
出来た se_2.0.1 ディレクトリに移動してください。
 ルート権限で次のとおりコマンドを実行します。

	#make
	#make install

 エディタコマンド se が、"/usr/local/bin" にインストールされます。インストール
ディレクトリを変更したい場合には、make ファイルを修正してください。

  ライブラリ cursesw をリンクしています。Linux ディストリビューションによっては
、cursesw ライブラリが存在しない場合があります。リンクエラーが発生した場合には
、cursesw の代わりに curses をリンクしてください。ただし、この場合には、UTF-8漢
字が正しく表示されません。


【使用方法】
 起動: se に続けて編集するファイル名を打ち込んで起動します。
	ファイル名を付けずに起動することも可能です。
 終了: F1キーを押して、出てくるメニューから終了を選択します。

 ファンクションキー操作:

	F1:ファイルメニュー
	F2:編集ファイル選択メニュー
	F3:ジャンプメニュー
	F4:編集中ファイルの切り替え(画面分割表示)
	F5:文字列検索の再実行
	F6:範囲選択の開始
	F7:選択範囲の削除
	F8:選択範囲の複写
	F9:複写貼り付け
	F10:検索置換メニュー


【その他】
 編集ファイルの大きさに制限はありません。ただし、搭載メモリの制限を受けます。
 同時編集可能なファイルの数に制限はありません。
 Linux のディストリビューションによっては、kterm、xterm や kon のキーが認識
されない場合があります。このようなときは、terminfo の内容を見直してください。
se が使用している curses ライブラリが terminfo を参照します。
 Xwindow などのマウスによるコピーペーストが可能です。
 端末画面の桁数、行数を数桁、数行未満にすると正しくメニューが表示されずハング
アップすることがあります。ktermやxtermの画面サイズの変更操作を行う時は注意して
ください。
 マウスによるカーソル位置のコントロールはできません。
 デフォルトでは1000回までのアンドゥを行うことが出来ます。
 編集対象ファイルの漢字コード、行末コードを自動判定します。
 漢字コードの変換には、nkf を使用します。予め nkf をインストールしておいてく
ださい。


===============================================================================
	詳細説明
-------------------------------------------------------------------------------

1. 起動オプション

    se [-t length][-w n][-u size][-i s|e|w|j][-o s|e|w|j]
	[-b][-l][-m][-h][-v][file ...]

    -t タブの大きさを指定します。デフォルトは8です。2〜12の範囲内で指定可能で
       す。
    -w 画面を上下に分割して複数のファイルを表示編集することができます。その分割
       数を指定します。デフォルトは2分割です。1ファイル当たり4行未満となるよう
       な分割数を指定すると1ファイル4行となる分割数に設定されます。
    -u アンドゥ可能な回数を指定します。デフォルトでは、1000回までの操作を記憶し
       ます。
    -i ファイル読み込み時の漢字コードを指定します。nkf による漢字コードの自動変
       換が失敗するような場合に指定します。
          s シフトJIS   e EUC
          w UTF8           j JIS
    -o ファイル書き込み時の漢字コードを指定します。nkf を使って、指定した漢字コ
       ードに変換して書き出します。
          s シフトJIS   e EUC
          w UTF8           j JIS
       このオプション指定が無い時には、読み込み時の漢字コードで出力します。
    -b ファイル書き込み時にバックアップファイルを作成します。デフォルトではバッ
       クアップは作成しません。バックアップファイルのファイル名は元ファイルのフ
       ァイル名の末尾に ~ が付加されたものとなります。
    -l $HOME/.se.log のファイル名で操作ログを作成します。
    -m モノクロモードで起動します。端末の terminfo でカラー属性が指定されていな
       い時にも自動的にモノクロモードで起動します。
    -h ヘルプを表示して終了します。
    -v バージョンを表示して終了します。
    file 編集するファイルを指定します。複数のファイルを指定することが出来ます。
         起動後にメニューから選択することも出来ます。


2.ファンクションキーによる操作

    起動オプションでファイルが指定されなかった時には、*scratch* の仮ファイル名
でテキスト編集を開始します。複数のファイルが指定された時には、画面を上下に分割
して表示します。一度に表示されるファイルは、分割数のオプション指定が無い場合に
は2つのファイルが表示されます。この状態で次のキー操作が可能となります。主要な
機能は、ファンクションキー1〜10に機能を割り当てています。

2.1ファイルメニュー(F1)
  ファンクションキー1を押下すると以下のメニューが端末画面の上部に表示されま
す。terminfoの不整合でファンクションキーが有効でない時には、ctrl-X を押して数字
の1を押してください。
    ctrl-X に続いて、数字の 0〜9 を押すことでファンクションキーの代替入力が可能
となっています。

    %%ファイルメニュー%%%%%%%%%%%%
    % 1:保存と編集継続           %
    % 2:保存と編集終了           %
    % 3:破棄と編集終了           %
    %----------------------------%
    % 4:全保存と編集継続         %
    % 5:全保存と編集終了         %
    % 6:全破棄と編集終了         %
    %----------------------------%
    % 7:別ファイル名で保存       %
    % 8:ファイルの挿入読込       %
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    メニューが表示された時には、「1:保存と編集継続」が選択されています。
    上下矢印キーで必要な操作を選択しエンターキーを押します。terminfo の不整合
で上下矢印キーが無効な時には、メニュー項目の番号の数字を押すことでも選択するこ
とが出来ます。


2.1.1 「保存と編集継続」
    現在編集中のファイルを保存します。保存後、そのまま編集を継続します。


2.1.2 「保存と編集終了」
    現在編集中のファイルを保存します。保存後、編集を終了します。複数のファイル
を編集している時には別のファイルの編集を開始します。一つのファイルだけを編集し
ていた場合には、ここでプログラムを終了します。


2.1.3 「破棄と編集終了」
    現在編集中のファイルを編集の内容に係わらず破棄して編集を終了します。複数の
ファイルを編集している時には別のファイルの編集を開始します。一つのファイルだけ
を編集していた場合には、ここでプログラムを終了します。終了前に実行確認の表示は
ありません。直ちに終了しますので注意してください。


2.1.4 「全保存と編集継続」
    現在編集している全てのファイルを保存します。保存後、そのまま編集を継続しま
す。保存直後のファイルや未変更のファイルは、保存が不要なため保存処理はされませ
ん。


2.1.5 「全保存と編集終了」
    現在編集している全てのファイルを保存します。保存後、プログラムを終了します
。保存に失敗したファイルがある場合には、そのファイルの編集を開始します。


2.1.6 「全破棄と編集終了」
    現在編集している全てのファイルの編集内容を破棄してプログラムを終了します。
終了前に実行確認の表示はありません。直ちに終了しますので注意してください。


2.1.7 「別ファイル名で保存」
    現在編集中のファイルを別ファイル名で保存し、編集を継続します。この項目を選
択すると、次のようなファイル名入力ボックスが表示されます。

    %%ファイル名%%%%%%%%%%%%%%%%%%%%%%%
    %                                 %
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    保存するファイル名を入力しエンターキーを押すと入力したファイル名で保存され
ます。入力したファイル名が存在しないファイルであれば新規作成され、既存のファイ
ル名であれば、既存のファイルに上書きします。
    ファイル名を入力しないでエンターキーのみを押すと操作をキャンセルします。


2.1.8 「ファイルの挿入読込」
    現在編集中のファイルに、別ファイルの内容を読み込んで挿入します。
この項目を選択すると、次のようなファイル名入力ボックスが表示されます

    %%ファイル名%%%%%%%%%%%%%%%%%%%%%%%
    %                                 %
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    読み込みを行うファイル名を入力しエンターキーを押すと読み込みが行われます。
    ファイル名を入力しないでエンターキーのみを押すと操作をキャンセルします。

    ファイルを指定する場合に、*.c や * のようなワイルドカード、あるいは 
/usr/local/ のようなディレクトリ名だけを入力してエンターキーを押すと、カレント
ディレクトリや指定のディレクトリを操作してファイルの一覧を表示します。上下左右
の矢印キーで選択し、エンターキーを押します。
    矢印キーやエンターキー以外のキーを押すと選択処理をキャンセルします。



2.2 編集ファイル選択メニュー(F2)
  ファンクションキー2を押下すると以下のメニューが端末画面の上部に表示されま
す。terminfoの不整合でファンクションキーが有効でない時には、ctrl-X を押して数字
の2を押してください。

    %%ファイル選択%%%%%%%%%%%%%%%%
    % 1:新しいファイル           %
    %----------------------------%
    % 2:*edit.cpp                %
    % 3: se.h                    %
    % 4:*se.cpp                  %
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


    現在読み込んでいる編集可能なファイルの一覧が2番目以降に一覧表示されます。
編集したいファイルを上下矢印キーで選択してエンターキーを押すと選択したファイル
が画面に表示されます。ファイルに変更があった場合にはファイル名の先頭にアスタリ
スクが表示されています。

    新しいファイルを読み込んで編集を行いたい場合には、「新しいファイル」を選択
します。すると、次のようなファイル名入力ボックスが表示されます

    %%ファイル名%%%%%%%%%%%%%%%%%%%%%%%
    %                                 %
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    新たに編集を行うファイル名を入力しエンターキーを押すと読み込みが行われます。
    入力されたファイル名が新規ファイルの場合には、空の編集画面が表示されます。
    ファイル名を入力しないでエンターキーのみを押すと操作をキャンセルします。

    ファイルを指定する場合に、*.c や * のようなワイルドカード、あるいは 
/usr/local/ のようなディレクトリ名だけを入力してエンターキーを押すと、カレント
ディレクトリや指定のディレクトリを操作してファイルの一覧を表示します。上下左右
の矢印キーで選択し、エンターキーを押します。
    矢印キーやエンターキー以外のキーを押すと選択処理をキャンセルします。



2.3 ジャンプメニュー(F3)
  ファンクションキー3を押下すると以下のメニューが端末画面の上部に表示されま
す。terminfoの不整合でファンクションキーが有効でない時には、ctrl-X を押して数字
の3を押してください。

    %%ジャンプ%%%%%%%%%%%%%%%%%%%%
    % 1:先頭行へ                 %
    % 2:最終行へ                 %
    % 3:指定行へ                 %
    % 3:マーク行へ               %
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    上下矢印キーで必要な操作を選択しエンターキーを押します。


2.3.1 「先頭行へ」
    ファイルの先頭ページを画面に表示し、編集カーソルをファイルの先頭に移動しま
す。


2.3.2 「最終行へ」
    ファイルの最後のページを画面に表示し、編集カーソルをEOF行に移動します。


2.3.3 「指定行へ」
    指定する行番号を含むページを画面に表示し、編集カーソルを指定した行番号の行
頭に移動します。
    この項目を選択すると、次のような行番号入力ボックスが表示されます。

    %%行番号%%%%%%%%%%%%%%%%%%%%%%%
    %                             %
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    数字キーで行番号を入力しエンターキーを押します。負数を入力したり、何も入力
しないでエンターキーを押すと処理をキャンセルします。ファイルの最終行の行番号よ
りも大きな値を指定するとファイルの最終行に移動します。


2.3.4 「マーク行へ」
    
    直前にマークされた行にジャンプします。編集中に ctrl+N (ctrlキーとNキーを同
時に押す)を入力することで現在カーソルのある行をマークします。
    現バージョンでは、マークできる数は一つだけです。
    マーク行へのジャンプは、ctrl+G を入力しても行うことが出来ます。
    マークされた行が無い場合には、何もしません。



2.4 編集中ファイルの切り替え(画面分割表示)(F4)

  ファンクションキー4を押下するごとに、現在読み込んでいる編集可能なファイル
を順次切り替えて画面に表示します。分割表示、全画面表示を繰り返しながらファイル
を切り替えます。目的のファイルが表示されるまでF4を繰り返し押します。
    ファンクションキー2でファイルを選択するよりもスピーディにファイル選択がで
きます。



2.5 文字列検索の再実行 (F5)

    ファンクションキー5を押下すると、直前に実行された文字列検索を再度実行しま
す。検索方向は前方検索となります。シフトキーと同時に押すことで後方検索を行うこ
とが出来ます。検索開始位置は、現在のカーソル位置となります。

    文字列が見つかれば、カーソルがその見つかった文字列位置に移動します。前方検
索の場合には、文字列の直後に、後方検索の場合には、文字列の先頭にカーソルが移動
します。
    文字列が見つから無かった場合には、画面上部に「該当なし」のメッセージが表示
されます。



2.6 範囲選択の開始/解除 (F6)

    ファンクションキー6を押下すると行選択を開始します。この後に上下矢印キーで
カーソルを移動すると、移動に伴い行が範囲選択されて反転表示されます。
    シフトキーと同時に押下すると文字選択を開始します。この後に左右矢印キーでカ
ーソルを移動すると、移動に伴い文字列が範囲選択されて反転表示されます。
    範囲選択中に、ファンクションキー6を押すと範囲選択を解除します。反転表示が
消えることで選択が解除されたことが確認出来ます。



2.7 選択範囲の削除 (F7)

    ファンクションキー7を押下すると、選択中の範囲を削除します。削除した内容は
、行選択中であれば、行複写バッファに、文字選択中であれば、文字列複写バッファに
保存されます。
    複写バッファの内容は、削除操作の都度更新されますが、シフトキーと同時に押下
した場合には、削除内容を複写バッファに追加保存します。

    選択範囲の削除は、Delキーを入力しても行うことが出来ます。ただし、Delキーは
シフトキーとの同時押下は出来ません。



2.8 選択範囲の複写 (F8)

    ファンクションキー8を押下すると、選択中の範囲を複写バッファに取り込みます。
行選択中であれば、行複写バッファに、文字選択中であれば、文字列複写バッファに取
り込みます。
    複写バッファの内容は、削除/複写操作の都度更新されますが、シフトキーと同時に
押下した場合には、複写バッファに追加保存されます。



2.9 複写貼り付け (F9)

    ファンクションキー9を押下すると、行複写バッファに保存されている内容をカー
ソルのある現在行の前に挿入します。シフトキーと同時に押下すると、文字列複写バッ
ファの内容をカーソル位置の前に挿入します。
    貼り付け操作を行っても複写バッファの内容は消去されずに保存されています。何
度でも貼り付けを行うことができます。



2.10 検索置換メニュー (F10)

  ファンクションキー10を押下すると以下のメニューが端末画面の上部に表示されま
す。terminfoの不整合でファンクションキーが有効でない時には、ctrl-X を押して数字
の0を押してください。


    %%検索と置換%%%%%%%%%%%%%%%%%%
    % 1:文字列の前方検索         %
    % 2:文字列の後方検索         %
    %----------------------------%
    % 3:文字列の置換:確認あり   %
    % 4:文字列の置換:確認なし   %
    %----------------------------%
    % 5:指定範囲内置換:確認あり %
    % 6:指定範囲内置換:確認なし %
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    メニューが表示された時には、「1:文字列の前方検索」が選択されています。
    上下矢印キーで必要な操作を選択しエンターキーを押します。terminfo の不整合
で上下矢印キーが無効な時には、メニュー項目の番号の数字を押すことでも選択するこ
とが出来ます。


2.10.1 「文字列の前方検索」
    この項目を選択すると、次のような検索文字列を入力するボックスが表示されます。
 

    %%検索文字列%%%%%%%%%%%%%%%%%%%
    %                             %
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


    検索する文字列を入力しエンターキーを押すと、現在のカーソル位置からファイル
の終わりに向けて検索を開始します。
    文字列が見つかれば、カーソルがその見つかった文字列の直後に移動します。
    文字列が見つから無かった場合には、画面上部に「該当なし」のメッセージが表示
されます。確認したら何かキーを押してください。
    検索文字列を何も入力しないでエンターキーを押すと、検索処理をキャンセルしま
す。
    同じ内容の検索を続けて行う場合には、ファンクションキー5を押して「文字列検
索の再実行」処理を行ってください。


2.10.2 「文字列の後方検索」

    「文字列の前方検索」と同様に、検索をファイルの先頭に向けて実施します。再実
行を行う場合には、シフトキーと同時にファンクションキー5を押します。


2.10.3 「文字列の置換:確認あり」
    この項目を選択すると、次のような検索文字列を入力するボックスが表示されます。
 

    %%検索文字列%%%%%%%%%%%%%%%%%%%
    %                             %
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    検索する文字列を入力しエンターキーを押すと、入力ボックスの下にもう一つ入力
ボックスが表示されます。

    %%検索文字列%%%%%%%%%%%%%%%%%%%
    %Simple Editor                %
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %%置換文字列%%%%%%%%%%%%%%%%%%%
    %                             %
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    下側のボックスに置換する文字列を入力しエンターキーを押下すると、現在のカー
ソル位置からファイルの終わりに向けて検索を開始します。

  検索文字列を何も入力しないでエンターキーを押すと置換処理をキャンセルします。

    置換文字列の入力で、何も入力しないでエンターキーを押すと、ヌル文字列置換(削
除置換)をするのかどうか、画面上部に「置換文字列なし (y/n)」を表示して応答確認待
ちとなります。ここで、y を押すと、検索文字列の削除を行い、y 以外のキーを押すと
置換処理をキャンセルします。

    文字列が見つかれば、見つかった文字列が反転表示され、画面上部に「置換します
か (y/n)」が表示されて応答確認待ちになります。置換する場合には、y を、置換した
く無い場合には、y 以外のキーを押します。

    ファイルの末尾に向けて検索処理を続行し、見つかれば置換操作を繰り返します。
置換操作の実行を途中で止めることはできません。これ以降、置換したく無い場合には、
y 以外のキーを押しつづけてください。

    検索文字列が見つからなくなったら「該当なし」を表示します。



2.10.4 「文字列の置換:確認なし」
    置換実行の応答確認が無い他は、前項の「文字列の置換:確認あり」に同じです。



2.10.5 「指定範囲内置換:確認あり」
    この項目は、前々項の「文字列の置換:確認あり」の操作を、指定した範囲内で行
うものです。範囲指定は、行番号で行います。

    この項目を選択すると、最初に次のような開始行番号を入力するボックスが表示さ
れます。

    %%開始行%%%%%%%%%%%%%%%%%%%%%%%
    %                             %
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    数字キーで行番号を入力しエンターキーを押すと、次の入力ボックスが表示されま
す。

    %%終了行%%%%%%%%%%%%%%%%%%%%%%%
    %                             %
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    ここで終了行を入力しエンターキーを押すと、2.10.3「文字列の置換:確認あり」
で説明したとおりの操作を続けて行うことができます。

    行番号入力で何も入力しないでエンターキーを押すと置換処理をキャンセルします。

    ファンクションキー6を押して、範囲選択中にこの項目を選択すると、行番号入力
ボックスに選択範囲の開始行、終了行が予め表示されます。


2.10.6 「指定範囲内置換:確認なし」
    前項の「指定範囲内置換」に同じです。置換の応答確認表示がありません。



3 コントロールキーとの併用操作
    コントロールキーと英文字キーを同時に押した場合、次のように機能します。

	ctrl+A	行頭にカーソルを移動します。
	ctrl+B	前ページを表示します。
       *ctrl+C	プログラムの強制終了。応答確認待ちとなります。
	ctrl+D	--- 未定義 ---
	ctrl+E	ファイルの最終行に移動します。
	ctrl+F	次ページを表示します。
	ctrl+G	マーク行に移動します。
	ctrl+H	バックスペースします。
	ctrl+I	TABを入力します。
	ctrl+J	改行キーを入力します。
	ctrl+K	範囲選択中なら選択範囲を削除します。非選択中なら現在行を削除
		します。
	ctrl+L	--- 未定義 ---
	ctrl+M	改行キーを入力します。
	ctrl+N	編集行をマークします。
	ctrl+O	--- 未定義 ---
	ctrl+P	行複写バッファの内容を貼り付けます。
       *ctrl+Q	停止しているキー入力操作を再開します。
	ctrl+R	--- 未定義 ---
       *ctrl+S	キー入力操作を停止します。
	ctrl+T	ファイルの先頭行に移動します。
	ctrl+U	アンドゥを1回行います。
	ctrl+V	--- 未定義 ---
	ctrl+W	画面を分割表示している時に、編集対象を切替ます。
	ctrl+X	ファンクションキーの代替機能を提供します。続けて0〜9の数字を
		押すことでF1〜F10を押下したことになります。
	ctrl+Y	範囲選択中なら選択範囲を複写バッファに取り込みます。非選択中な
		ら現在行を複写バッファに取り込みます。
       *ctrl+Z	プログラム本体をバックグラウンド実行に切り替えます。

     * の付いたキー操作は、システム環境によるものです。
     ctrl+C の強制終了は編集結果を保存しませんので実行にあたっては注意してくだ
     さい。



4 漢字処理

  4.1 内部処理
    プログラム内部での漢字コードの取扱は、環境変数 LANG を参照して決定していま
す。ファンクションキーによるメニューの日本語表示は、LANG を参照して、シフトJIS、
EUC、UTF-8の各漢字を切り替えます。export LANG=C と、非漢字環境に設定するとメニ
ュー表示は英語表示となります。

    端末から入力される漢字コードもLANG変数で指定されるコードであると仮定してい
ます。入力される漢字コードがLANG変数と異なる時は文字化けを起こします。

    LANG変数が未定義の場合には、漢字を一切考慮しません。メニューは英語表示とな
ります。


  4.2 ファイルの入出力
    編集ファイルを最初に読み込む時、外部プログラム nkf を -g オプションを付けて
起動し、ファイルに含まれる漢字コードを検査します。

    検査の結果、LANG変数で指定する漢字コードと異なる場合には、再度 nkf を使って
、LANG変数で指定する漢字コードに、一旦コード変換した後、メモリに読み込みます。

    ファイルの漢字コードがLANG変数で指定する漢字コードと一致している場合には、
変換は不要なので直接メモリに読み込みます。

    ファイルを保存する時には、ファイルを最初に読み込んだ時に検査して得られた漢
字コードに変換してから書き戻しを行います。

    新規ファイルを作成した場合には、-o オプションの指定がない限り、LANG変数で指
定される漢字コードで書き出しを行います。

    インストールされた nkf のバージョンが古い場合には、-g オプションがサポート
されていません。この場合に、漢字コード検査が正しく処理されず、ファイルを読み込
んだ時点で文字化けを起こす場合があります。このような場合には、-i オプションで
入力ファイルの漢字コードを指定してください。

    DOSやMS-Windows環境で作成された行末が CRLF で終わるテキストファイルもそのま
ま読み込み、書き出しすることが出来ます。



5 端末(ターミナル)について

  5.1 端末画面のサイズ変更
    プログラム実行中に、端末画面の行数、桁数を変更することが可能です。
  ただし、桁数や行数を小さくするとメニューが正しく表示されなくなります。場合
によってはハングアップすることもありますので、特に理由のない限り画面サイズは小
さくしないでください。


  5.2 日本語表示
    X-Window環境のktermやgterm、xtermでは漢字表示可能ですが、X-Windowを起動して
いないコンソール端末では漢字が表示できません。このような場合には、LANG変数を C 
に変更するとメニュー表示が英語になり使い易くなります。ただし日本語ファイルの編
集はしないことが前提です。


 5.3 エスケープシーケンス
    端末の画面制御、端末から入力されたキーの送信コード等のエスケープシーケンス
を取得判断するために、curses ライブラリは、terminfo の端末データベースを、環境
変数TERMをキーにして読み取ります。

    terminfo の端末データベースに登録されたエスケープシーケンスと実際の端末の動
作が異なる場合には、ファンクションキーや矢印キーが無効になります。また、端末の
カラー表示の有無もこの terminfo から取得していますので、実際はカラー表示が可能
な端末であっても、モノクロモードで se が起動することがあります。

    terminfo の内容を実際の端末動作に修正するか、同じ動作を登録した端末名をTERM
変数に設定することで、これらの問題を解決することができます。

   ちなみに、私が使用しているUTF-8対応のMS-WindowsのTeraTermでは、TERM に vt100
を設定しますが、接続しているサーバー Fedra 8 の terminfo の vt100 エントリーに
は、color 属性が無く、かつ ファンクションキーの送信コードが実際とは一致していま
せんので、se を起動すると、モノクロモードかつファンクションキーが無効な状態にな
ります。
    そこで、その回避策として、TeraTerm のエスケープシーケンスが terminfo の
 kterm エントリーと同じであることから、環境変数TERMをvt100からktermに変更してい
ます。se を起動した時だけTERM変数を書き換えるために、次のようなshellプログラム
を使っています。


	[root@localhost]#cat /usr/local/bin/se
	#!/bin/sh
	if [ $TERM == "vt100" ]; then
	        TERM=kterm
	fi

	if [ $TERM == "linux" ]; then
	        LANG=C
	fi

	/usr/local/bin/se.orig $@

    *)インストールされる実行ファイル se は se.orig にリネームしてあります。



6 アンドウ処理について
  このエディタのアンドウ処理は、キー操作を忠実にバックトレースするものではあ
りません。例えば、改行までの連続する文字入力操作は、一回に纏めてアンドウします
。そのため、文字入力途中で3文字前まで戻ろうとしても、もっと先までアンドウして
しまいます。これは、アンドウのための操作記録を大きくしないための措置の結果です。


7 バックアップ
    起動オプションに -b を指定するとファイル書き込み時にバックアップファイルを
作成します。デフォルトではバックアップは作成しません。バックアップファイルのフ
ァイル名は元ファイルのファイル名の末尾に ~ が付加されたものとなります。

    シンボリックリンクファイルを編集した時は、シンボリックリンクのリンク先のフ
ァイルの内容が、リンクファイル名に ~ が付加されたファイル名でバックアップされま
す。


    [root@localhost]#ls -l *.doc *.txt
    lrwxrwxrwx 1 root root      8 2008-04-23 12:26 test.doc -> test.txt
    -rw-r--r-- 1 root root   3227 2008-04-22 15:04 test.txt

    [root@localhost]#se -b test.doc
    -b オプションを付加してシンボリックリンクファイル test.doc を編集すると

    [root@localhost]#ls -l *.doc *.txt
    lrwxrwxrwx 1 root root      8 2008-04-23 12:26 test.doc -> test.txt
    -rw-r--r-- 1 root root   3227 2008-04-23 12:27 test.doc~
    -rw-r--r-- 1 root root   3238 2008-04-23 12:27 test.txt

    編集前のリンク先の test.txt の内容が test.doc~ でバックアップされる。



8 操作ログ
    起動オプションに -l を指定すると操作ログファイルを作成します。ログファイル
は、ホームディレクトリに ".se.log" のファイル名で作成します。環境変数 HOME が未
定義の場合には、プログラムを起動したカレントディレクトリに作成します。



                                            (c) 2008.04. www.suwa-koubou.jp