テキストエディタ

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ
ここに示されているLeafpadのようなエディターは、テキストファイルを開くためのデフォルトのヘルパーアプリケーションとしてオペレーティングシステムに含まれていることがよくあります。

テキストエディタは、プレーンテキストを編集するコンピュータプログラムの一種ですこのようなプログラムは、 Microsoft Notepadの名前にちなんで、「メモ帳」ソフトウェアと呼ばれることもあります[1] [2] [3]テキストエディタにはオペレーティングシステムとソフトウェア開発パッケージが付属しており、構成ファイル、ドキュメントファイル、プログラミング言語のソースコードなどのファイルを変更するために使用できます。[4]

プレーンテキストとリッチテキスト

プレーンテキスト(テキストエディタで作成および編集)とリッチテキスト(ワードプロセッサデスクトップパブリッシングソフトウェアで作成されたものなど)には重要な違いがあります

プレーンテキストは、文字表現のみで構成されています。各文字は、 ASCIIISO / IEC 2022UTFなどの特定の文字エンコード規則に従って、1、2、または4バイトの固定長シーケンス、または1〜4バイトの可変長シーケンスとして表されます。-8、またはUnicodeこれらの規則は、多くの印刷可能な文字を定義しますが、スペース改行ページ分割など、テキストの流れを制御する非印刷文字も定義します。プレーンテキストには、テキスト自体に関する他の情報は含まれていません。採用されている文字エンコード規則も含まれていません。プレーンテキストはに保存されますテキストファイル。ただし、テキストファイルはプレーンテキストのみを格納するわけではありません。コンピュータの初期の頃は、プレーンテキストは等幅フォントを使用して表示されていたため、水平方向の配置と列の書式設定は空白文字を使用して行われることがありました。この伝統は変わっていません。

一方、リッチテキストには、メタデータ、文字フォーマットデータ(書体、サイズ、太さ、スタイルなど)、段落フォーマットデータ(インデント、配置、文字と単語の分布、行間や他の段落間のスペースなど)、およびページ仕様データ(サイズ、余白、読み取り方向など)。リッチテキストは非常に複雑になる可能性があります。リッチテキストは、バイナリ形式DOCなど)、マークアップ言語に準拠したテキストファイルRTFHTMLなど)、または両方のハイブリッド形式(Office Open XMLなど)で保存できます。

テキストエディタは、プレーンテキストまたはプレーンテキストとして解釈できるもの(リッチテキストのマークアップやその他のマークアップ(SVGなど)を含む)を含むテキストファイルを開いて保存することを目的としています。

歴史

いくつかのプログラムデッキを備えたパンチカードの箱。

テキストエディタが存在する前は、コンピュータのテキストはキーパンチマシンでカードにパンチされていました。次に、これらの薄い段ボールカードの物理的な箱をカードリーダーに挿入しました。このようなカードデッキから作成された磁気テープおよびディスクの「カードイメージ」ファイルには、行区切り文字がまったくなく、固定長の80文字のレコードが想定されていました。カードの代わりに、紙テープを打ち抜いた。これは、レコードの終わりを示すために特殊文字を使用 する一部のテレプリンター(Teletypeなど)によって作成される可能性があります。

最初のテキストエディタは、ディスプレイのないテレプリンタまたはタイプライタースタイルの端末を対象とした「ラインエディタ」でした。コマンド(多くの場合、1回のキーストローク)は、「カーソル」と呼ばれる架空の挿入ポイントでファイルを編集しました。編集は、コマンドを入力してファイルの小さなセクションを印刷し、定期的にファイル全体を印刷することによって確認されました。一部のラインエディタでは、ファイル内の行番号、検索対象のテキスト文字列(コンテキスト)、および最終的には正規表現を指定するコマンドによってカーソルを移動できました。ラインエディタは、キーパンチよりも大幅に改善されました。一部のラインエディタは、キーパンチで使用できます。編集コマンドは、トランプのデッキから取得して、指定したファイルに適用できます。一部の一般的なラインエディタは、変更コマンドが変更された行を表示する「検証」モードをサポートしていました。

ビデオ画面を備えたコンピュータ端末が利用可能になると、画面ベースのテキストエディタ(単に「画面エディタ」と呼ばれることもあります)が一般的になりました。初期のフルスクリーンエディターの1つはO26で、これは1967年にCDC6000シリーズコンピューターのオペレーターコンソール用に作成されました。別の初期のフルスクリーンエディターはviでした。1970年代に作成されましたが、UnixおよびLinuxオペレーティングシステムの標準エディタ[ 5 ]ですまた、1970年代には、インデントされたソースコードと一般的なテキストの両方に最適化されたUCSD Pascal Screen OrientedEditorが作成されました。[6] Emacs、最初の1つ フリーでオープンソースのソフトウェアプロジェクトは、別の初期のフルスクリーンまたはリアルタイムエディタであり、多くのシステムに移植されました。[7]フルスクリーンエディターの使いやすさとスピード(ラインベースのエディターと比較して)は、ビデオ端末の多くの早期購入の動機となりました。[8]

テキストエディタのコアデータ構造は、編集中のファイルの現在の状態を表す文字列(文字のシーケンス)またはレコードのリストを管理するものです。前者は単一の長い連続した文字配列に格納できますが、テキストの挿入、テキストの削除、以前の編集の取り消し/やり直しをより迅速に行えるテキストエディタが必要なため、より複雑なシーケンスデータ構造が開発されました。[9] 一般的なテキストエディタは、シーケンスデータ構造として 、ギャップバッファリンクされた行のリスト(PaperClipのように)、ピーステーブル、またはロープを使用します。

テキストエディタの種類

プログラマーの間で人気のあるテキストエディターであるEmacsは、MicrosoftWindows上で実行されます
geditは、 GNOMEに同梱されているテキストエディタです。

小さくてシンプルなテキストエディタもあれば、幅広く複雑な機能を提供するテキストエディタもあります。たとえば、UnixおよびUnixライクなオペレーティングシステムにはpicoエディタ(またはバリアント)がありますが、多くのオペレーティングシステムにはviおよびEmacsエディタも含まれています。Microsoft Windowsシステムにはシンプルなメモ帳が付属していますが、多くの人、特にプログラマーは、より多くの機能を備えた他のエディターを好みます。AppleMacintoshクラシックMacOSには、ネイティブのSimpleTextがあり、 Mac OSXではTextEditに置き換えられました。、テキストエディタの機能と、定規、余白、複数のフォントの選択など、ワードプロセッサの一般的な機能を組み合わせたものです。これらの機能を同時に使用することはできませんが、ユーザーコマンドによって、またはファイルタイプを自動的に決定するプログラムを介して切り替える必要があります。

ほとんどのワードプロセッサは、プレーンテキスト形式でファイルを読み書きできるため、テキストエディタから保存されたファイルを開くことができます。ただし、これらのファイルをワードプロセッサから保存するには、ファイルがプレーンテキスト形式で書き込まれていること、およびテキストエンコーディングBOM設定によってファイルが意図された用途で不明瞭にならないようにする必要があります。WordStarなどのWYSIWYGワードプロセッサは、テキストエディタとしてより簡単に使用できるようになり、実際、1980年代にはそのように一般的に使用されていました。これらのワードプロセッサのデフォルトのファイル形式は、多くの場合、マークアップ言語に似ています。基本的な形式は、非印刷の制御文字を使用して実現されるプレーンテキストと視覚的な形式です。またはエスケープシーケンスMicrosoft Wordのような後のワードプロセッサは、ファイルをバイナリ形式で保存し、プレーンテキストファイルの編集に使用されることはほとんどありません。[10]

一部のテキストエディタは、ログファイルや単一のファイルに配置されたデータベース全体などの非常に大きなファイルを編集できます。より単純なテキストエディタは、ファイルをコンピュータのメインメモリに読み込むだけです。ファイルが大きい場合、これは処理が遅くなり、ファイル全体が収まらない可能性があります。一部のテキストエディタでは、この読み込みが完了するまでユーザーは編集を開始できません。専門外のエディターでは、編集のパフォーマンスが低下することがよくあります。エディターは、キーストロークやナビゲーションコマンドに応答するのに数秒または数分かかる場合があります。専門の編集者は、大きなファイルの表示部分のみをメモリに保存するなどの最適化を行い、編集パフォーマンスを向上させます。

一部のエディターはプログラム可能です。つまり、特定の用途に合わせてカスタマイズできます。プログラム可能なエディターを使用すると、反復的なタスクを自動化したり、新しい機能を追加したり、エディターのフレームワーク内に新しいアプリケーションを実装したりすることが簡単にできます。カスタマイズの一般的な動機の1つは、ユーザーが使い慣れている別のテキストエディターのコマンドをテキストエディターに使用させること、またはユーザーが依存するようになった不足している機能を複製することです。ソフトウェア開発者は、多くの場合、作業しているプログラミング言語または開発環境に合わせたエディターのカスタマイズを使用します。一部のテキストエディターのプログラマビリティは、プログラムのコア編集機能の強化に限定されていますが、Emacsテキストファイルの編集をはるかに超えて拡張できます。Webブラウジング、電子メールの読み取り、オンラインチャット、ファイルの管理、またはゲームのプレイに使用でき、テキストユーザーインターフェイスを備えたLisp実行環境と見なされることがよくあります。Emacsは、 Unix文化の伝統的なエディタ戦争のライバルであるViをエミュレートするようにプログラムすることもできます[11] [12]

プログラム可能なエディターの重要なグループは、スクリプト言語としてREXX [a]を使用しています。これらの「オーソドックスなエディター」には、コマンドとマクロを入力できる「コマンドライン」と、行コマンド[b]とマクロを入力できるテキスト行が含まれています。このようなエディターのほとんどは、ISPF / PDF EDITまたはXEDITの派生物であり、IBMのVM / SPからz / VMまでの主力エディターです。その中には、THEKEDIT、X2、Uni-edit、およびSEDITがあります。

特定の用途向けに作成またはカスタマイズされたテキストエディタは、多くの場合、プログラミング用語を完成させ、関連するドキュメントとともにツールチップを表示することにより、ユーザーが編集しているものを判別し、ユーザーを支援できます。ソフトウェア開発者向けの多くのテキストエディタには、プログラムの読み取りと書き込みを容易にするために、ソースコード構文の強調表示と自動インデントが含まれています。プログラミングエディタでは、多くの場合、ユーザーがインクルードファイル関数、または変数の名前を選択して、その定義にジャンプすることができます。また、最初のカーソル位置を保存するか、要求された定義をに表示することにより、コードの元のセクションに簡単に戻ることができるものもあります。ポップアップウィンドウまたは一時バッファ。一部のエディターはこの機能を自分で実装しますが、多くの場合、ctagsなどの補助ユーティリティを使用して定義を見つけます。

典型的な機能

  • 検索と置換–テキストエディタは、テキストの文字列を個別に、または開いているタブや選択したフォルダ内のファイルのグループを検索して置換するための広範な機能を提供します。高度な編集者は、正規表現を使用してテキストまたはコードを検索および編集できます。追加機能には、オプションの大文字と小文字の区別、クイックリコールとオートコンプリートのための検索用語の履歴、複数の結果を1か所に一覧表示することが含まれる場合があります。[13] [より良い情報源が必要]
  • 切り取り、コピー、貼り付け–ほとんどのテキストエディタには、ファイル内またはファイル間でテキストを複製および移動する方法が用意されています。
  • UTF-8でエンコードされたテキストを処理する機能。
  • テキストの書式設定–テキストエディタは、多くの場合、行の折り返し自動インデントASCII文字を使用した箇条書きの書式設定、コメントの書式設定構文の強調表示などの基本的な視覚的な書式設定機能を提供します。これらは通常、表示専用であり、ファイル自体にフォーマットコードを挿入しません。
  • 元に戻すとやり直し–ワードプロセッサと同様に、テキストエディタは、最後の編集などを元に戻したりやり直したりする方法を提供します。多くの場合、特に古いテキストエディタでは、記憶される編集履歴のレベルは1つだけであり、undoコマンドを連続して発行すると、最後の変更のみが「切り替え」られます。最近のまたはより複雑なエディターは通常、undoコマンドを繰り返し発行するとドキュメントが連続して古い編集に戻るように、複数レベルの履歴を提供します。別のREDOコマンドは、編集を最新の変更に向けて「転送」します。記憶される変更の数はエディターによって異なり、多くの場合、ユーザーが構成できます。
  • 指定された行番号にジャンプする機能。

高度な機能

  • マクロまたはプロシージャの定義:新しいコマンドまたは機能を、前のコマンドまたは他のマクロの組み合わせとして、おそらく渡されたパラメーターを使用して、またはマクロのネストを使用して定義します。
  • 編集セッションの間にユーザーが設定したオプションを保持するプロファイル。
  • 環境、プロファイルなどで指定された名前のプロファイルマクロは、編集セッションの開始時または新しいファイルを開くときに自動的に実行されます。
  • マルチファイル編集:編集セッション中に複数のファイルを編集し、おそらく各ファイルの現在の行のカーソルを記憶し、各ファイルに繰り返しテキストを挿入し、ファイル間でテキストをコピーまたは移動し、ファイルを並べて比較する機能(おそらく、タイル化されたマルチドキュメントインターフェイスを使用)など。
  • マルチビューエディタ:独立したカーソル追跡を使用して同じファイルの複数のビューを表示する機能。ウィンドウ間で変更を同期しますが、独立したファイルで利用できるのと同じ機能を提供します。
  • 折りたたみ/展開、折りたたみとも呼ばれます:テキストのセクションを一時的に表示から除外する機能。これは、行番号の範囲に基づいているか、構文要素に基づいている可能性があります。たとえば、BEGINの間のすべてを除外します。および一致するEND。
  • 列ベースの編集。特定の列でデータを変更または挿入したり、データを特定の列にシフトしたりする機能。
  • データ変換–別のテキストファイルの内容を読み取ったり、現在編集中のファイルにマージしたりします。一部のテキストエディタは、オペレーティングシステムのシェルに発行されたコマンドの出力を挿入する方法を提供しますまた、大文字と小文字をシフトする機能は、小文字または大文字に変換される可能性があります。
  • フィルタリング–一部の高度なテキストエディタでは、編集中のファイルのすべてまたはセクションを別のユーティリティに送信し、「フィルタリング」されている行の代わりに結果をファイルに読み戻すことができます。これは、たとえば、一連の行をアルファベット順または数値で並べ替えたり、数学的な計算を行ったり、ソースコードをインデントしたりする場合に役立ちます。
  • 構文の強調表示ソースコードマークアップ言語、構成ファイル、および整理された形式または予測可能な形式で表示されるその他のテキストを状況に応じて強調表示します。エディターでは通常、ユーザーが各言語要素に使用される色やスタイルをカスタマイズできます。一部のテキストエディタでは、ユーザーがテーマをインストールして使用し、エディタのユーザーインターフェイス全体のルックアンドフィールを変更することもできます
  • 構文指向のエディター-一部のエディターは、1つ以上の言語の構文をサポートしており、構文単位に関する操作を許可します。たとえば、SELECTステートメントに新しいWHEN句を挿入します。
  • 拡張性-プログラマーが使用することを目的としたテキストエディターは、プラグインメカニズムを提供するか、スクリプト可能である必要があります。そのため、プログラマーは、個々のソフトウェアプロジェクトの管理に必要な機能でエディターをカスタマイズしたり、特定のプログラミング言語バージョン管理システムの機能やキーバインディングをカスタマイズしたりできます。または特定のコーディングスタイルに準拠します
  • カーソルナビゲーションは、テキストエディタによって異なる場合があります。たとえば、2回押すEndと、画面上のテキスト行の最後に1回押すと、折り返し行の最後に移動する場合があります。ブロック指向の端末には、通常、パーソナルコンピュータのキーボードと同様に、専用のカーソル移動キーがあります。
  • コマンド行-一部のエディター(ISPFXEDITなど)には、テキストではなくコマンドを入力するための専用フィールドが画面にあります。エディターによっては、ユーザーがカーソルキーを使用してコマンドフィールドとテキストフィールドを切り替える必要がある場合や、エディターが特定のファンクションキーなどを切り替え要求として解釈する場合があります。
  • プレフィックスコマンドまたはシーケンスコマンドとも呼ばれる行コマンド-一部のエディタは、ファイルを関連する行番号またはシーケンス番号を持つテキスト行の配列として扱い、テキストフィールドごとに個別の行番号フィールドを持っています。行コマンドは、ユーザーが行番号フィールドに入力し、エディターがその特定の行または行のブロックを操作するコマンドとして認識する文字列です。たとえば、LCを使用して行を小文字に変換し、))3をシフトして右の3列をブロックします。一部のエディターは、プレフィックスマクロまたはシーケンスマクロとも呼ばれる行マクロもサポートします。name prefixコマンドにもかかわらず、一部のエディターでは、シーケンスフィールドをテキストフィールドの後に表示できます。

専門編集者

一部のエディタには、たとえば、特別な機能や追加の機能が含まれています。

  • ソースコードエディタは、ソースコードの作成を容易にする追加機能を備えたテキストエディタです。これらは多くの場合、ユーザーがプログラム可能な構文の強調表示とコードナビゲーション機能、およびHTMLエディターに似たコーディングツールまたはキーボードマクロを備えています(以下を参照)。
  • 折りたたみ式エディターこのサブクラスには、Xeditの派生物であるいわゆる「オーソドックスエディター」が含まれます。プログラミング固有の機能なしで折りたたみを実装するエディターは、通常、アウトライナーと呼ばれます(以下を参照)。
  • IDE(統合開発環境)は、大規模なプログラミングプロジェクトを管理および合理化するように設計されています。これらは、単純なテキスト編集には不要な多くの機能を含んでいるため、通常はプログラミングにのみ使用されます。
  • World Wide Webの作成者には、 Webページの作成タスク専用のさまざまなHTMLエディタが提供されています。これらには、DreamweaverKompoZer、およびE TextEditorが含まれます。多くは、組み込みのHTMLレンダリングエンジンまたは標準のWebブラウザで進行中の作業を表示するオプションを提供します
  • ほとんどのWeb開発、ソースコードエディタまたはIDEを使用して、RubyPHPなどの動的プログラミング言語で行われます。最も単純な静的Webサイトを除くすべてのサイトで配信されるHTMLは、サイトを制御するソフトウェアによってアセンブルされ、完全なHTMLドキュメントを構成しない個別のテンプレートファイルとして保存されます。
  • 数学者、物理学者、およびコンピューター科学者は、プレーンテキストファイルでTeXまたはLaTeXを使用して記事や本を作成することがよくあります。このようなドキュメントは、多くの場合、標準のテキストエディタで作成されますが、専用のTeXエディタを使用する人もいます。
  • アウトライナー階層的なアウトラインツリーとテキストエディタを組み合わせているため、ツリーベースのエディタとも呼ばれます。折りたたみ(上記を参照)は、アウトラインの特殊な形式と見なすことができます。
  • コラボレーティブエディタを使用すると、複数のユーザーがネットワーク上の離れた場所から同時に同じドキュメントで作業できます。個々のユーザーによって行われた変更は追跡され、ドキュメントに自動的にマージされて、編集の競合の可能性を排除します。これらの編集者には通常、編集者間で話し合うためのオンラインチャットコンポーネントも含まれています。
  • 気を散らすことのないエディターは、ライターを他のアプリケーションやオペレーティングシステムから分離する目的で最小限のインターフェイスを提供します。これにより、ツールバー通知領域などのインターフェイス要素から気を散らすことなく、書き込みに集中できます

プログラム可能なエディターは通常、これらの機能のいずれかまたはすべてを実行するように拡張できますが、より単純なエディターは1つだけに焦点を当てるか、gPHPeditのように単一のプログラミング言語を対象としています。

も参照してください

メモ

  1. ^ 元々、マクロはアセンブラー、 CLIST TSO)、 CMS EXEC VM)、 EXEC2(VM / SE)、またはPL / Iで作成されていましたが、REXXが使用可能になると、ほとんどのユーザーはCLIST、EXEC、およびEXEC2を削除しました。
  2. ^ 行コマンドは、テキストの特定の行に関連付けられ、スコープがその行に限定されている、またはブロックコマンドの場合は、先頭と行の間の行のブロックに関連付けられているシーケンス番号入力領域に入力されるコマンドです。終了行コマンド。後者の例は、2行の入力領域にコマンドucc(大文字をブロック)を入力することです。これは、範囲内の各行の入力領域にuc(大文字)を入力するのと同じ効果が

参考文献

  1. ^ H。アルバートネイピア; Ollie N. Rivers; スチュアート・ワーグナー(2005)。勝利のE-ビジネスを作成します。センゲージラーニング。p。330. ISBN 1111796092
  2. ^ ピーターノートン; スコットH.クラーク(2002)。ピーターノートンの新しいPCの内部サムズパブリッシング。p。54. ISBN 0672322897
  3. ^ L。ゴパラクリシュナン; G.パドマナバン; Sudhat Shukla(2003)。あなたの家のPC:あなたのパソコンを最大限に活用するタタマグロウヒルエデュケーションp。190. ISBN 0070473544
  4. ^ 「Windows、Linux、およびMac用の最高のフリーテキストエディタ」すべてのオペレーティングシステムにはデフォルトの基本的なテキストエディタが付属していますが、私たちのほとんどは、より多くの機能を取得するために独自の拡張テキストエディタをインストールしています。
  5. ^ 「TheOpenGroup Base Specification Issue 6、IEEE Std 1003.1、2004Edition」IEEEとTheOpenGroup。2004 2010年1月18日取得
  6. ^ L.ボウルズ、ケネス; ホラン、ジェームズ(1978-07-01)。「UCSDPASCALシステムの概要」行動研究方法10(4):531–534。土井10.3758 / BF03205341
  7. ^ 「Emacs編集環境の紹介」2014年6月6日にオリジナルからアーカイブされまし2014年6月6日取得
  8. ^ 「MulticsEmacs:歴史、設計および実装」一部のMulticsユーザーは、これらの端末を「ガラステレタイプ」または「ローカル編集」として使用して購入しました。
  9. ^ チャールズクロウリー。 「テキストシーケンスのデータ構造」セクション 「はじめに」
  10. ^ 「プログラマーのためのテキストエディター-プログラミングツール」テキストエディタで.docファイルを開くと、ほとんどのファイルがフォーマットコードであることがわかります。ただし、テキストエディタはフォーマットコードを追加しないため、コードのコンパイルが容易になります。
  11. ^ 「VimtoEmacsの邪悪な混沌とした移行ガイド」juanjoalvarez.net
  12. ^ 「Gitorious」2015年5月27日取得
  13. ^ 「検索| Notepad ++ユーザーマニュアル」npp-user-manual.org 2021年12月21日取得

外部リンク