テキスト edエディタ | |
| 原作者 | ケン・トンプソン |
|---|---|
| 開発者 | AT&T ベル研究所 |
| 初回リリース | 1973年、51~52年前 |
| 書かれた | C |
| オペレーティング·システム | Unix、Unix ライク、Plan 9 |
| プラットフォーム | クロスプラットフォーム |
| タイプ | テキストエディタ |
| ライセンス | プラン9: MITライセンス |
ed(発音は別文字で、 / ˌ iː ˈ d iː /) [1]は、UnixおよびUnix系オペレーティングシステム用の行エディタです。1969年8月に開発されたUnixオペレーティングシステムの最初の部分の1つでした。 [2]より洗練されたフルスクリーンエディタviと並んで、 POSIXおよびOpen GroupのUnixベースオペレーティングシステムの標準の一部となっています。 [3]
歴史と影響
ed テキストエディタは、Unix オペレーティングシステムの最初の 3 つの主要要素 (アセンブラ、エディタ、シェル)の 1 つであり、 1969 年 8 月にAT&T ベル研究所のPDP-7上でKen Thompsonによって開発されました。[2] ed の多くの機能は、Thompson の母校であるカリフォルニア大学バークレー校で開発されたqedテキストエディタから受け継がれました。[4] Thompson は qed に精通しており、CTSSおよびMulticsシステムで再実装していました。Thompson の qed のバージョンは、正規表現を実装した最初のバージョンとして有名です。ed にも正規表現が実装されていますが、その実装は qed ほど汎用的ではありません。
デニス・M・リッチーは、後にダグ・マキロイが「決定版」と評したedを開発しました。 [5] edのさまざまな側面はexに影響を与え、exはviを生み出しました。非対話型のUnixコマンドgrepは、qedとその後のedの一般的な特殊用途に触発されました。このコマンドは、グローバルな正規表現g/re/p検索を実行し、一致した行を出力します。Unixストリームエディタsedは、Unix上のedではサポートされていなかったqedのスクリプト機能の多くを実装しました。[6] [検証失敗] [7]
特徴
ed の機能は次のとおりです。
- 基本的にすべての Unix システムで利用可能 ( Single Unix 仕様に準拠するシステムでは必須)。
- 正規表現のサポート
- 標準入力からコマンドを入力することで強力な自動化を実現できます
簡潔さで(悪名高い)ed は、テレタイプ モデル 33などのテレタイプ端末と互換性があり、視覚的なフィードバックをほとんど提供しないため、[8]同時代の(そして悪名高いほど複雑な) TECOと比較しても、(ピーター H. サルスによって)「これまで作成された中で最もユーザーを敵視するエディタ」と呼ばれています。[2]たとえば、エラーが発生した場合や、ユーザーが保存せずに終了するかどうかを確認するときに ed が生成するメッセージは「?」です。現在のファイル名や行番号は報告されず、要求されない限り、テキストの変更結果も表示されません。古いバージョン(1981 年頃)では、ユーザーが変更を保存せずに終了コマンドを発行したときに確認すら求められませんでした。[8]この簡潔さは、コンソールがテレタイプで、モデムが遅く、メモリが貴重だった初期の Unix バージョンでは適切でした。コンピュータ テクノロジーが進歩し、これらの制約が緩和されるにつれて、視覚的なフィードバックが多いエディタが標準になりました。

現在、ed が対話的に使用されることはほとんどないが、一部のシェルスクリプトでは使用されている。対話的な使用では、ed は 1980 年代にsam、vi、およびEmacsエディタに統合された。ed は、利用可能な Unix およびLinuxのほぼすべてのバージョンに存在し、複数のバージョンの Unix を操作する必要がある人にとっては便利である。Unix ベースのオペレーティングシステムでは、EDITOR および VISUAL 環境変数が定義されていない場合、SQL*Plusなどの一部のユーティリティは ed をエディタとして実行する。 [9]何か問題が発生した場合、ed が唯一のエディタになることがある。これは、ed が対話的に使用される唯一の場合であることが多い。
GNUが提供するedのバージョンには、フィードバックを強化するためのスイッチがいくつかあります。を使用するとed -v -p:、シンプルなプロンプトが提供され、より有用なフィードバックメッセージが有効になります。[10]このスイッチは、 XPG2(1987)-p以来POSIXで定義されています。 [3]
ed コマンドは、他の行ベースのエディタでよく模倣されています。たとえば、初期のMS-DOSバージョンや32 ビットバージョンのWindows NTのEDLIN は、いくぶん似た構文を持っており、多くのMUD (たとえば、 LPMudやその派生製品) のテキスト エディタは、ed のような構文を使用しています。ただし、これらのエディタは、通常、機能が制限されています。
例
以下は ed セッションのトランスクリプトの例です。わかりやすくするために、ユーザーが入力したコマンドとテキストは通常の書体で、ed からの出力は強調されています。
1つの ed は標準の Unix テキスト エディターです。 これは2行目です。 。 2i
。 、l ed は標準の Unix テキスト エディターです。$ $ これは 2 行目です。$ w テキスト.txt 633s/two/three/、l ed は標準の Unix テキスト エディターです。$ $ これは 3 行目です。$ w テキスト.txt 65 q
text.txt最終結果は、次のテキストを含む
単純なテキスト ファイルになります。
ed は標準の Unix テキスト エディターです。
これは3行目です。
このコマンドは空のファイルで開始され、aテキストを追加します (ed コマンドはすべて 1 文字です)。このコマンドは ed を挿入モードにして、後続の文字を挿入し、行に 1 つのドットを入力して終了します。ドットの前に入力された 2 行はファイル バッファに格納されます。この2iコマンドも挿入モードになり、入力されたテキスト (この場合は 1 つの空行) を 2 行目の前に挿入します。すべてのコマンドは、その行を操作するために行番号を先頭に付けることができます。
行 では,l、小文字の L は list コマンドを表します。コマンドの前には範囲が付きますが、この場合は,のショートカットです1,$。範囲は、カンマで区切られた 2 つの行番号です ($は最後の行を意味します)。代わりに、ed は最初から最後まですべての行をリストします。これらの行はドル記号で終了するため、行末の空白が明確に表示されます。
2 行目に空行を挿入すると、「これは行番号 2 です。」という行は実際には 3 行目になります。このエラーは、置換コマンド で修正されます。 はこれを正しい行に適用します。コマンドの後に、置換するテキスト、置換後のテキストが続きます。 行を含むすべての行を一覧表示すると、正しいことが示されます。
3s/two/three/3,l
w text.txtバッファをファイルに書き込み、 ed はファイルに書き込まれた文字数である65text.txtで応答します。edセッションを終了します。
q
文化的参照
GNUプロジェクトは、ed に関するジョークを Web サイトで多数公開しています。さらに、glibcのドキュメントには、エラー コード(errorstr) の説明として、疑問符が 1 つだけ記載されてEDおり、「経験豊富なユーザーであれば、何が間違っているかがわかる」と書かれています。[11]
参照
- Edlin は、 edに触発された標準MS-DOSラインエディタです。
- Sam (テキストエディター)
- 編集者戦争
- Unixコマンドのリスト
参考文献
- ^ Computerphile (2018-07-06)、 GREP の起源 – Computerphile、2021-12-11 にオリジナルからアーカイブ、2020-10-21 に取得
- ^ abc Salus, Peter H. (2005). The Daemon, the Gnu and the Penguin. Groklaw . 2010-05-05時点のオリジナルよりアーカイブ。
- ^ ab – シェルおよびユーティリティ リファレンス、The Single UNIX 仕様、バージョン 4、The Open Groupより
- ^ DM Ritchie および KL Thompson、「QED テキスト エディター」、MM-70-1373-3 (1970 年 6 月)、「QED テキスト エディター リファレンス マニュアル」、MHCC-004、Murray Hill Computing、ベル研究所 (1972 年 10 月) として再版。
- ^ McIlroy, MD (1987). A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 (PDF) (技術レポート). CSTR. Bell Labs. 139.
- ^ Raymond, Eric (2003). 「The Art of Unix Programming」(PDF) 。 2023年6月15日時点のオリジナルよりアーカイブ(PDF)。2023年6月14日閲覧。
- ^ 「Unix の初期の歴史と影響について」。
しばらくして、代替用の別の専用プログラム gres (g/re/s) の需要が高まりました。Lee McMahon がそれを作成することに着手し、すぐに g/re/d、g/re/a など、このファミリーが尽きることがないことを予見しました。彼の概念が発展するにつれて、それは sed になりました…
- ^ ab Donald A. Norman (1981). 「UNIX についての真実」(PDF)。Datamation 。2014 年 4月16 日のオリジナル(PDF)からアーカイブ。
- ^ SQL*Plus の管理。2016 年 7 月 23 日にアクセス。
- ^ – Linux一般コマンドマニュアル
- ^ 「GNU C ライブラリ - エラーコード」。www.gnu.org。
外部リンク
- : テキスト編集 – シェルおよびユーティリティ リファレンス、The Single UNIX 仕様、バージョン 4、The Open Group
- ed について説明している Unix First Edition のマニュアル ページ。
- : テキストエディタ – バージョン 7 Unixプログラマーズマニュアル
- : テキスト エディター - Plan 9 Programmer's Manual、第 1 巻、オリジナル版の直接の派生版。
- GNU ed ホームページ
- 「バークレー以前の UNIX の歴史」のセクション 3.1 では、ed の歴史について説明します。
