Euphoria標準エディタ


はじめに

Euphoriaのダウンロードパッケージには完全にEuphoriaで記述された手軽なテキストエディタであるedが含まれています。多くの人々はedの使いやすさを見つけ出してプログラムや他のファイルを編集していますが、必ずしも使用する必要はありません。

edが好みに合わなくても、さらに多くの選択肢があります。デイビッド・キューニー(David Cuny)によるEE editorはEuphoriaで記述するDOSで動作するEuphoria用エディタです。これは、マウスを使用した使いやすいインタフェースでドロップダウンメニューなどを備えています。これはRDSウェブサイトから入手可能です。DOS, Windows, LinuxおよびFreeBSDで動作するEuphoria志向のエディタが他にいくつもあります。アーカイブページのEditorsセクションを調べてみてください。実際は、DOSのEDITコマンドやWindowsのメモ帳を含む任意のテキストエディタを使用してEuphoriaプログラムを編集することができます。

要約

 
使用方法1:   ed ファイル名
使用方法2:   ed

なにかエラーが起きた後に、edのように入力すると、エディタはエラーを検出した行と桁にカーソルを移動します。さらにはエラーメッセージがスクリーンの先頭に表示されます。

Euphoria関連ファイルは、色分けされて表示されます。他のテキストファイルは白黒表示となります。これにより意に反して色分けされないときは、なにか綴りを誤入力したということがわかります。なおEuphoria関連ファイルではキーワードは青。インタプリタに内蔵されているルーチン名はマゼンタとして表示されます。文字列は緑。コメントは赤。その他多くのテキストは黒です。釣り合ったブラケット(同一行で)は同じ色です。edの他のいくつかのパラメータと同様にこれらの色を変更できます。 詳しくはed.exの先頭付近にある"user-modifiable parameters(利用者が変更可能なパラメータ)"を参照してください。

矢印キーでカーソールを左、右、上また下に動かすことができます。多くのほかの文字は即座にファイルに挿入されます。

Windowsでは、ed.batに様々な形式のファイルを"関連付け"することができます。これらの形式のファイルをダブルクリックするとedに読み込まれます。 - すなわち .e, .pro, .docなど。Euphoriaのメインファイルの末尾は.ex (.exw)であり、ex.exe(exw.exe)に関連付けられていることがあります。

edマルチファイル/マルチウィンドウのDOSエディタです。Esc cによりスクリーンを同時に10ファイルまで分割して表示・編集ができ、これらの間でカット・ペーストができます。複数の編集ウィンドウを表示・編集できる上に一つのファイルの異なる別の場所を編集することもできます。

特殊キー

PCキーのいくつかはLinuxまたはFreeBSDのテキストコンソール、telnetでは動作せず、さらにX windows上のxtermでもいくつかのキーが動作しません。しかし、別のキーが提供されています。場合によりLinux/FreeBSDでは希望する機能を希望するキーに割り当てるためにed.exを編集する必要がある場合があります。

Delete - カーソルより先にある現在の文字を削除します。
Backspace - カーソルを左へ移動して文字を削除します。
control-Delete - 現在の行を削除します(control-Deleteが全システムで利用可能とは限りません)。
control-d - 現在の行を削除します(control-Deleteと同じです)。
Insert - 現在の文字または現在行の前にDeleteまたはcontrol-Deleteで(連続)削除した文字(列)を再挿入します。
control-[←] - 前の語句の頭に移動します。Linux/FreeBSDではcontrol-Lを使用してください。
control-[→] - 次の語句の頭に移動します。Linux/FreeBSDではcontrol-Rを使用してください。
Home - 現在行の行頭に移動します。
End - 現在行の行末に移動します。
control-Home - ファイルの先頭に移動します。これはex.exeのみ動作します。 Windows/Linux/FreeBSDではcontrol-T(すなわちTop)を使用してください。
control-End - ファイルの末尾に移動します。これはex.exeのみ動作します。Windows/Linux/FreeBSDではcontrol-B(すなわちBottom)を使用してください。
Page Up - 1スクリーン上に移動します。Linux/FreeBSDのxtermではcontrol-Uを使用してください。
Page Down - 1スクリーン下に移動します。Linux/FreeBSDのxtermではcontrol-Pを使用してください。
F1 ... F10 - 現在のウィンドウを新規選択します。先頭ウィンドウのスクリーンはF1より開始され、ウィンドウは上から下へ番号付けされます。
F12 - これは特別な設定可能なコマンドです。これはEuphoriaのコメント記号である"--"を現在行の始めに挿入するように設定されています。これは単純にed.exの先頭付近にあるconstant CUSTOM_KEYSTROKESを再定義することにより、簡単に任意のキーストローク列を実行するように変更できます。


エスケープ・コマンド

Escキーを押してから、次のキーのうち1つを押します:

h - テキストエディタ、またはEuphoriaのヘルプテキストを参照します。スクリーンを分割するとプログラムとヘルプテキストを同時に閲覧できます。
c - 現在のウィンドウを"複製"します。すなわち、最初に新規編集ウィンドウは現在のウィンドウと同じファイル、同じ現在位置を表示します。全てのウィンドウの大きさは、新規ウィンドウ領域を確保するために調節されます。このときEsc lを使用してスクリーン行数を増やしたいことがあるでしょう。作成した各ウィンドウは個別にスクロールすることができ個別にメニューバーを持つことができます。ファイルの変更結果は最初に現在のウィンドウのみ反映されます。新規にウィンドウを選択するためにF-keyを押すと任意の変更結果が反映されます。Esc nを使用すると任意のウィンドウに新しくファイルを読み込むことができます。
q - 現在のウィンドウを終了(削除)しますが、ウィンドウが無い場合はエディタを終了します。修正を行ったファイルが使用している最後の編集ウィンドウならば警告を出します。残りのウィンドウは全て大きめ領域が与えられます。
s - 現在のウィンドウで編集中のファイルを保存しますが、現在のウィンドウを閉じるには上述のEsc qを使用してください。
w - ファイルを保存しますがウィンドウを閉じません。
e - ファイルを保存してからex, exw またはexuによって実行します。プログラム完了後にビープ音が鳴ります。Enterを押すとエディタに復帰します。この操作は拡張メモリの残りが少ないと動作しません。なお、プログラムにコマンドライン引数を与えることはできません。
d - オペレーティングシステムのコマンドを実行します。完了後にビープが鳴り、Enterを押すとエディタに復帰します。このコマンドを応用すると別のエディタで別のファイルを編集してから復帰することもできますが、Esc cのほうが利便性に優れています。
n - 現在のウィンドウで新規ファイルの編集を開始します。削除した行/文字および検索文字列は新規ファイルでも使用できます。新規ファイルのパスの入力が必要です。その他にもWindowsのファイルマネージャーやエクスプローラからファイル名をedが起動しているMS-DOSウィンドウにドラッグすることもできます。これによりフルパスが入力されます。
f - 現在ウィンドウから次に出現する文字列を検索します。文字列を新規入力するとき、"大文字・小文字を区別して一致するかしないか"をオプションとして指定できます。yを押すと大文字/小文字を区別して一致します。そのままEnterを押すと次に出現する文字列を検索します。その他の任意のキーを押すと検索を中断します。はじめから検索するには、Esc fの前にcontrol-Homeを押してください。何も入力されないときは規定検索の文字列として、ダブルクォートが表示されます。
r - 文字列全体を別のものに置換します。この操作はEsc fと似ています。Enterを押すと置換処理を継続できます。 慎重に。 -- 置換可能なものを飛ばして次の置換候補へ進む方法はありません。
l - スクリーンに表示する行を変更します。使用可能な特定の値はビデオカード依存します。多くのカードでは25, 28, 43および50行が利用可能です。

Linux/FreeBSDのテキストコンソールでは利用可能な行数(通常25行)は固定されいます。Linux/FreeBSDのxtermウィンドウでは、edはed起動時に取得した行数を初期値として使用します。よってウィンドウの大きさを変更してもed開始時に影響はありません。

m - これまでの変更を表示します。現在の編集バッファはeditbuff.tmpとして保存され、DOSのfcコマンドまたはLinux/FreBSDのdiffコマンドを使用してディスク上のファイルと比較します。エディタを終了したいときにEsc mは非常に有益ですが、今までの変更点またはファイルが保存可能であるか記録することができません。さらに編集ミスをしたときにも原文がどうなっているか確認したいときにも有益です。
ddd - 行番号dddへ移動します。 すなわち、Esc 1023 Enterはファイル内の1023行に移動します。
CR - Esc キャリッジリターン、すなわちEsc Enterは、現在ファイル名、同様に行および文字の位置、最後に保存されたときからの修正の有無を表示します。Escを押してから気が変わったとしても、これは状態を表示するだけであり、そのままEnterを押すだけで、何も差し支えなく編集に戻ることができます。


入力履歴の呼び出し

Esc n, Esc d, Esc r および Esc fコマンドでは文字列の入力を求められます。これらの文字列をDOSまたはLinux/FreeBSDのコマンドラインのように入力履歴として呼び出して編集できます。[↑]または[↓]を入力することにより文字列を切り替えて以前入力したコマンドを与えることにより、[←]、[→]およびDeleteキーで文字列の編集できます。Enterを押すと文字列を確定します。


切り取りと貼り付け

連続する行にcontrol-Delete(またはcontrol-D)、または連続した文字にDeleteを押すと、削除した物を含む"kill-buffer"を作成します。このkill-bufferはカーソルを移動してInsertを押すことにより再挿入できます。

離れた場所に移動して他の削除を始めるごとに、新しいkill-bufferが開始され古いバッファは消滅します。例えば、control-Deleteにより連続するの切り取りがそうです。貼り付けたいときは希望する行にカーソルを移動してInsertを押します。元のテキストを破壊することなく行を複写したいときは、最初にcontrol-Deleteを押した後に、すぐにInsertを押すと再挿入されます。他に移動してInsertを押すと再び何度でも挿入できます。連続する個別の文字に対してDeleteを押してカーソルの移動することにより、他の場所に削除した文字を貼り付けることもできます。元の文字を削除せずに複写したいときは削除後すぐにInsertを押します。

kill-bufferはEsc nを入力して新しいファイルを読み込むか、F-keyを押して新しい編集ウィンドウを選択することにより持たせることができます。kill-bufferを挿入することができます。


タブの使用

標準タブ幅は半角空白8文字分です。エディタは大半のファイルでタブ幅を8と仮定します。しかし、半角空白と等しいタブをインデントとして使用するとプログラムの編集に使用するともっと便利です。そのため編集ファイルとしてEuphoriaファイル(または.c, や .h, さもなくば.basファイル)を見つけるとタブ幅は4に設定されます。エディタはプログラム読み込み時にタブ幅を8から4へ変換して、ファイル保存時にタブ幅を8へ復元します。したがってファイルはタブ幅8のままの世界、すなわちMS-DOSのPRINTやEDITコマンドなどとの互換性を持たせることができます。インデントとして異なる空白の幅を選択したいときはed.ex上部に記述されている"constant PROG_INDENT = 4"の行を変更します。


長い行

スクリーン右端を越えて続いている行では80桁の文字は反転表示されます。これは、もっとテキストがありますが"範囲外"にあるため表示できないことを警告します。80桁から続いている場所へカーソルを移動できます。常にカーソル位置が確認できるようにするためにスクリーンは左右にスクロールします。


最大ファイルサイズ

全てのEuphoriaプログラムのように、edはマシンに搭載されている全てのメモリーにアクセスできます。これにより巨大なファイルを編集でき、さらにディスクスワップが発生しない限り大部分の操作は非常に軽快に行えます


非テキストファイル

edは純粋なテキストファイルの編集用に設計されていますが、他の形式のファイルを閲覧するのにも使用できます。edはファイルを読み込むとき、特定の表示不可能文字を(ASCIIコードの14以下)をASCIIコード254 - 小さな矩形へ置換します。非テキストファイルを保存しようとすると本件に関して警告されます(MS-DOS EDITでは暗黙のうちにファイルが破壊されます。 - 保存しないでください!)。 ed edで開いた全ての"テキスト"ファイルには、edではファイルの終端に現れるcontrol-z(26)文字がファイルに埋め込まれます。


長いファイル名

edはDOS用のエディタですが、完全なファイル名を保ったまま、長いパス名を持つ既存ファイルを編集できまます。しかし、このリリースのedでは長いファイル名を持つ新しいファイルを作成できません。このときはファイル名前の長さはDOSの8.3標準形式に丸め込まれます(詳細は後述の動作環境を参照してください)。


改行

TLinux/FreeBSDでは改行文字は単に\nです。 DOSとWindowsでは、テキストファイルの行末は\r\nです。もしDOSまたはWindowsのファイルをLinux/FreeBSDへコピーしてedで変更をしようとすると、\r\n文字のままにするか、\nに変換して保存するか選択することができます。


ソースコード

このエディタの完全なソースコードはbin\ed.exbin\syncolor.eになります。ご自由に改良してください。ed.exの上部には設定可能なパラメータとして"user-modifiable((利用者が変更可能)"があるため設定の変更ができます。色とカーソルの大きさは操作環境を改善するためにいくつか設定する必要があることがあります。


動作環境

euphoria\bin\ed.batでed.exを実行するのに exwc.exeまたは ex.exeを使用するように設定できます。Windows 95/98/MEではex.exeを使用してedを実行したほうが良いです。exwc.exeを使用すると、より迅速にスクリーンの描画が更新されます。Windows XPではexwc.exeを使用したほうが多少良いです。これにより少しスクリーンの描画の更新速度が向上する上に、既存ファイルを開くことなく長いファイル名を作成することができます。しかし、いくつかの特殊なキーは exwc.exeでは動作しません。すなわち、control-tおよびcontrol-bの代わりにcontrol-Home および control-Endを使用してください。LinuxおよびFreeBSDでは、長いファイル名を扱っても問題は無く、キーボードの応答は常に高速です。