Linuxでexラインエディタを使用する方法

Linuxでは、多くの人が長年nanoやVimなどのスクリーンエディタを使用してきましたが、テレタイプの時代から引き継がれたものがあります。それが、exというラインエディタです。非常に古いエディタですが、今でも用途があります。

exとは?

exは、オリジナルのviエディタも開発した、BSDの主要開発者であるビル・ジョイによって開発されたテキストエディタです。この2つのエディタは、後述のように密接な関係があります。

exはラインエディタであり、その名の通りです。これは、フルスクリーンバッファで動作する最近のテキストエディタとは異なり、一度に1行ずつ処理するテキストエディタです。

ラインエディタは、ほとんどの人がコンピュータとやり取りするために、印刷端末(テレプリンタまたはテレタイプとしても知られる)を使用していた時代に主に使用されていました。これらのデバイスは紙に印刷するため、数行を変更するだけでファイルを印刷するのは非実用的でした。これらのデバイスは、Linuxコマンドの長さにも大きな影響を与えました。

ビデオ端末が普及すると、ファイル全体を一度に見ることができるため、多くの人がスクリーンエディタに切り替えました。ほとんどのユーザーは、この方が古いラインエディタよりもはるかに便利であると感じ、端末がミニコンピュータまたはメインフレームに接続されていた時代から、端末エミュレータとGUIを実行するデスクトップコンピュータに移行するまで、スクリーンエディタを使い続けました。

ラインエディタは決して消滅しませんでした。MS-DOSには、MS-DOSエディタが登場するまでMicrosoftがシステムに提供していた唯一のエディタであるEdlinが付属していました。ラインエディタは、簡単な編集やスクリプトに使用できるため、最新のLinuxシステムでも生き残っています。

Linuxでexを起動する

exを起動するのは簡単です。コマンドラインで次のように呼び出すだけです。

ex file

コロン(:)文字が記載された空白の画面が表示されます。Vimのコマンドモードに似ています。

スクリプトをexに渡すこともできます。これを行うには、ex、ダッシュ(-)文字、編集するファイルの名前、標準入力としてリダイレクトされたスクリプトファイルの順に使用します。

例:

ex - file < script

exでラインを印刷する

ファイル内の位置を確認するには、行または行番号を印刷する必要があります。行を印刷するには、:pコマンドを使用します。

行番号を印刷するには、:=(等号)コマンドを使用します。

一連の行を印刷するには、開始行、カンマ、終了行を使用します。たとえば、3行目から6行目までの行を印刷するには、次のようにします。

:3,6

Linuxでexを使用して行を編集する

ファイルに新しいテキストを追加することもできます。行を挿入するには、:insertまたは:iコマンドの後に追加するテキストを使用します。

例:

:i some text

現在の行を削除するには、:deleteまたは:dコマンドを使用します。

:moveまたは:mコマンドを使用して、行を別の行に移動できます。

exでテキストを検索して置換する

exの強みは、検索および置換コマンドにあります。検索と置換を実行するには、sedと同様にs/old/new/を使用します。ここで、「old」は変更するテキストを表し、「new」は変更後のテキストを表します。

ファイル全体でグローバルに変更するには、コマンドの前にパーセント(%)文字を付け、/gを追加します。

%s/old/new/g

Vimに切り替える

コマンドモードでコマンドがVimと非常によく似ていることに気づいた場合、それには正当な理由があります。exは、Vimのラインエディタバージョンです。元のviエディタとexエディタはどちらも、1970年代にカリフォルニア大学バークレー校のビル・ジョイによって開発されました。当時は、印刷端末とラインエディタがまだ頻繁に使用されており、特にシステムコンソールで使用されていました。

Vimに切り替えるのは簡単で、フルスクリーンエディタは対話型編集に適しています。これを行うには、次のビジュアルコマンドを発行するだけです。

:visual

これでLinux PCでexを使用できるようになりました

exはほとんどの場合スクリーンエディタに取って代わられていますが、緊急時にはまだ使用できます。テキストを挿入および削除したり、検索および置換操作を実行したりできます。

exは、より人気の高いVimと密接に関連しています。あまり注目されていない他のターミナルベースのLinuxテキストエディタもいくつかあります。