名前 | 形式 | 機能説明 | オプション | オペランド | 使用法 | 環境 | 終了ステータス | ファイル | 属性 | 関連項目 | 作者 | 注意事項
/usr/bin/ex [-| -s] [-l] [-L] [-R] [-r [file]] [-t tag] [-v] [-V] [-x] [-wn] [-C] [+command | -c command] file...
/usr/xpg4/bin/ex [-| -s] [-l] [-L] [-R] [-r [file]] [-t tag] [-v] [-V] [-x] [-wn] [-C] [+command | -c command] file...
/usr/xpg6/bin/ex [-| -s] [-l] [-L] [-R] [-r [file]] [-t tag] [-v] [-V] [-x] [-wn] [-C] [+command | -c command] file...
ex ユーティリティはエディタ群 ex と vi のもとになるエディタで、ed のスーパーセットです。ed と比較すると、画面上での編集用に優れた拡張機能が備わっています。画面中心のテキスト編集は vi が目的とする機能です。
CRT 端末を使っているユーザーは、画面上でテキストを編集することが多く、その場合には ex の画面編集機能である vi(1) を使ってください。
ed を使った経験のあるユーザーは、ex では ed のすべてのコマンドがサポートされているばかりでなく、CRT 端末上で便利なさまざまな機能が備わっていることに気づくはずです。インテリジェント端末や高速端末では vi でも十分に便利な機能を果たせます。一般的に言えば、ex エディタは ed と比べて端末の機能を引き出すことができます。端末機能データべース ( terminfo(4) を参照 ) を参照し、さらに環境変数 TERM が示す端末タイプを参照して、端末を効率よく使う方法を決定します。ex エディタでは、その画面上テキスト編集機能である visual コマンド (vi と略すことが可能) が持つ文字や行の挿入/削除といった機能を利用することができます。この処理モードは、vi コマンドを使用する際の中心的なモードです。
ex ユーティリティには、ファイル中のテキストを簡単に画面表示するための便利な機能が用意されています。たとえば z コマンドにより、テキストのウィンドウへ容易にアクセスできます。また ^D (CTRL-D) はウィンドウ半分だけテキストをスクロールするもので、改行キーを押す方法よりも簡単にファイルの内容を見ることができます。もちろん画面主導の visual モードも使用でき、これにより編集中のテキストにアクセスできます。
入力操作を誤ってしまった場合、ex ユーティリティには便利な補助機能が用意されています。undo (u) コマンドは、誤って実行してしまった変更処理 (1 つ) を取り消して元の状態に戻します。ex はユーザーに対して様々なフィードバックを行います。変更された行の内容を出力したり、またあるコマンドが多くの行の内容を変更した場合にその旨をユーザーに知らせます。これにより、予期していなかった行にまでコマンドが影響を与えてしまった場合、ユーザーはただちにそれを発見できます。
また本エディタは通常、現在編集中のもの以外のファイルへの上書きを抑止します。したがって、誤って別のファイルに書き込んでしまうというミスを防ぐことができます。システムやエディタがクラッシュしたり、ユーザーが誤って電話を切ってしまった場合でも、エディタの recover コマンド (または -r file オプション) を使えば作業を再開できます。このため、作業が中断した地点よりも数行ほど戻るだけで済みます。
さらに、複数のファイルを同時に扱うための機能も ex ユーティリティには備わっています。コマンド行上でファイルの 並びを指定し、next (n) コマンドを実行すれば順番にファイルが処理されます。next コマンドに対して、処理の対象とする一群のファイルを指定するために、ファイル名のリストやシェルが扱うようなパターンを与えることができます。エディタにおけるファイル名は、完全シェル・メタシンタクスで表されるのが 通常です。メタキャラクタ % を使ってファイル名を定義することも でき、現ファイルの名前に置き換えられます。
エディタには、ASCII の小文字 (a–z) からなる名前を持つバッファが備わっています。ユーザーはテキストをバッファに書き込み、後でファイル中の他の位置へそのテキストを挿入することができます。edit (e) コマンドを使って別の新たなファイルの 編集を開始しても、バッファの内容は以前のまま残されます。
ex には、最後に実行した置換 (substitute) コマンドを繰り返すための & コマンドが用意されています。また確認付き置換コマンドもあります。特定の範囲の中で置換を行うよう指示すると、エディタは 個々の該当箇所について実際に置換してよいか否かを問い合わせる、いわゆる対話型置換を実行します。
検索/置換処理において、大文字と小文字は同一とみなすよう指示することも できます。また語のマッチング用に正規表現を指定することも可能です。この便利な機能を使うと、たとえば検索対象として "edit" と 指定したとき、"editor" という語も検索できます。'
ex が提供するオプションは、ユーザーが自分の希望に合わせて設定できます。便利なオプションの例として autoindent があります。これは自動インデントを行うもので、各行の先頭に空白を置いて 自動的にテキストをインデントします。表示されたテキストに対して、^D により後方へのタブを行なったり、空白文字やタブキーを入力したりして行の位置を変更できます。
その他の便利な機能としては、連結した行の間に自動的に空白を挿入する join (j) コマンド、複数の行を一度にシフトする < および > コマンド、さらに sort などのコマンドを通じてバッファの一部を フィルタする機能などがあります。
以下のオプションを指定できます。
ユーザーへのすべての対話型フィードバックを抑止します。エディタスクリプト実行中に便利なオプションです。
LISP を編集するための設定を行います。
エディタもしくはシステムのクラッシュ発生によって保存された全ファイルの名前を表示します。
読み取り専用モード。readonly フラグがセットされ、ファイルの上書きは不可能となります。
エディタもしくはシステムのクラッシュが発生した後で、file が示すファイルを編集します。つまりクラッシュ発生時にバッファ中にあったバージョンを復元します。
tag が示すタグを含むファイルを編集します。そのタグが定義されている地点が編集開始地点となります。-t オプションを複数指定すると、エラーになります。
vi を使った編集の画面表示を開始します。vi コマンドを入力しても同様に実行できます。
冗長。ex コマンドを標準入力で読み込んだ場合、入力は標準エラーに表示されます。シェルスクリプトの ex コマンド実行時に役に立ちます。
暗号化オプション。X コマンドと同様にキーの入力をユーザーに要求します。このキーにより、暗号化と復号化が crypt コマンドのアルゴリズムを使って実行されます。X コマンドは、その高度な推定能力を使って、読み込まれたテキストが暗号化 されているか否かを判定します。一時バッファのファイルも、この -x オプション用にユーザーが入力したキーから生成した別バージョンのキーを使って暗号化されます。
ウィンドウサイズのデフォルト値を n に設定します。低い回線速度でエディタを使用する場合に便利なオプションです。
暗号化オプション。上記 -x オプションと同様ですが、唯一の違いは X コマンドの代わりに C コマンドを実行する点です。この両コマンドの違いは、C コマンドでは読み込まれたテキストは暗号化されているものと無条件にみなされるという点です。
command で示したエディタコマンドを冒頭に実行して編集処理を開始します。通常は、検索または位置指定用のコマンドが用いられます。
-t tag と -c command の 2 つのオプションがともに指定された場合は、-t tag の方が先に処理されます。つまりタグを含んだファイルが -t により選択され、その後でコマンドが実行されます。
このセクションでは、ex の状態、コマンド、オプションの初期化、およびパターンの組み合わせについて明確にします。
これが通常もしくは初期の状態です。“:” がプロンプトとして表示され、入力が可能になっています。行削除文字の入力によりコマンドの一部を取り消すことができます。
a、i、または c の入力によりこの状態になり、任意のテキストを入力できます。この状態を終了させるには、ピリオド (.) だけからなる行を入力するか、あるいは割り込みを発生させます。後者の場合には異常終了となります。
vi と入力するとこの状態になり、Q または ^\ (CTRL-\) と入力すると終了します。
Command Abbrevi- Command Abbrevi- Command Abbrevi- Name ation Name ation Name ation abbrev ab map set se append a mark ma shell sh args ar move m source so change c next n substitute s copy co number nu unabbrev unab delete d preserve pre undo u edit e print p unmap unm file f put pu version ve global g quit q visual vi insert i read r write w join j recover rec xit x list l rewind rew yank ya |
Join [range] j[oin][!] [count] [flags] |
count を指定した場合:
アドレスを指定しない場合、join コマンドは、現在のアドレスと現在のアドレスに count を加えたアドレス、つまり、2 つのアドレス (..,. + count) が指定されたように動作します。1 つのアドレスを指定した場合、join コマンドは、指定されたアドレスと指定されたアドレスに count を加えたアドレス、つまり、2 つのアドレス (addr, addr + count) が指定されたように動作します。
アドレスを指定しない場合、join コマンドは、現在のアドレスと現在のアドレスに count を加えて 1 を引いたアドレス、つまり、2 つのアドレス (.,. + count -1) が指定されたように動作します。1 つのアドレスを指定した場合、join コマンドは、指定されたアドレスと指定されたアドレスに count を加えて 1 を引いたアドレス、つまり、2 つのアドレス (addr, addr + count -1) が指定されたように動作します。
複数のアドレスを指定した場合、join コマンドは、指定された複数のアドレスと、指定された最後のアドレスにカウントを加えて 1 を引いたアドレス、つまり、複数のアドレス (addr1, ..., lastaddr, lastaddr + count -1) が指定されたように動作します。2 番目のアドレスが編集バッファにある最後のアドレスを超えた場合、このアドレスは編集バッファにある最後のアドレスに修正されます。
count を指定しない場合:
アドレスを指定しない場合、join コマンドは、現在のアドレスとその次のアドレス、つまり、2 つのアドレス (..,. +1) が指定されたように動作します。1 つのアドレスを指定した場合、join コマンドは、指定されたアドレスとその次のアドレス、つまり、2 つのアドレス (addr, addr +1) が指定されたように動作します。
次の ex コマンドでは、count を指定した場合、コマンドに拡張アドレスを指定した場合と同じになります。拡張アドレスは、(明示的またはデフォルトで) コマンドに指定した最後のアドレスに count を加えて 1 を引いたアドレスと同じです。このアドレスが編集バッファにある最後のアドレスを超えた場合、このアドレスは編集バッファにある最後のアドレスに修正されます。
次の ex コマンドでは、count と range の両方を指定した場合、コマンドが適用されるアドレス数は count で指定した数になり、コマンドが適用される最初のアドレスは range で指定した最初のアドレスになります。
省略 |
ab[brev] word rhs |
追加 |
[line]a[ppend][!] |
引数 |
ar[gs] |
変更 |
[range] c[hange][!] [count] |
ディレクトリ変更 |
chd[ir][!] [directory]; cd[!] [directory] |
コピー |
[range] co[py] line [flags]; [range] t line [flags] |
削除 |
[range] d[elete] [buffer] [count] [flags] |
編集 |
e[dit][!] [+line][file]; ex[!] [+line] [file] |
ファイル |
f[ile] [file] |
グローバル |
[range] g[lobal] /pattern/ [commands]; [range] v /pattern/ [commands] |
挿入 |
[line] i[nsert][!] |
制御文字の表示 |
[range] l[ist] [count] [flags] |
マップ |
map[!] [x rhs] |
マーク |
[line] ma[rk] x; [line] k x |
移動 |
[range] m[ove] line |
次のファイル |
n[ext][!] [file ...] |
オープン |
[line] o[pen] /pattern/ [flags] |
保存 |
pre[serve] |
バッファからの取り出し |
[line] pu[t] [buffer] |
終了 |
q[uit][!] |
読み込み |
[line] r[ead][!] [file] |
復元 |
rec[over] file |
リワインド |
rew[ind][!] |
設定 |
se[t] [option[=[value]]...] [nooption...] [option?...] [all] |
シェル |
sh[ell] |
ソース |
so[urce] file |
中断 |
su[spend][!]; st[op][!] |
タグ |
ta[g][!] tagstring |
省略の解除 |
una[bbrev] word |
取り消し |
u[ndo] |
マップの解除 |
unm[ap][!] x |
ビジュアルモードに変更 |
[line] v[isual] [type] [count] [flags] |
書き込み |
[range] w[rite][!] [>>] [file]; [range] w[rite][!] [file]; [range] wq[!] [>>] [file] |
書き込んで終了 |
[range] x[it][!] [file] |
バッファへの取り込み |
[range] ya[nk] [buffer] [count] |
ウィンドウ調整 |
[line] z [type] [count] [flags] |
シェルエスケープ |
! command [range]! command |
スクロール |
EOF |
行番号表示 |
[line] = [flags] |
実行 |
@ buffer; * buffer |
次の ex コマンドでは、count を指定した場合、コマンドに拡張アドレスを指定した場合と同じになります。拡張アドレスは、(明示的またはデフォルトで) コマンドに指定した最後のアドレスに count を加えて 1 を引いたアドレスと同じです。このアドレスが編集バッファにある最後のアドレスを超えた場合、このアドレスは編集バッファにある最後のアドレスに修正されます。
数値 |
[range] nu[mber] [count] [flags]; [range] | # [count] [flags] |
出力 |
[range] p[rint] [count] [flags] |
置換 |
[range] s[ubstitute] [/pattern/repl/[options] [count] [flags]] |
左へシフト |
[range] < [count] [flags] |
右へシフト |
[range] > [count] [flags] |
再置換 |
[range] & [options] [count] [flags]; [range] s[ubstitute] [options] [count] [flags]; [range] ~ [options] [count [flags] |
n |
n 番目の行 |
. |
現在行 |
$ |
最終行 |
+ |
次の行 |
- |
前の行 |
+n |
n 行後 |
% |
1,$ |
/pat |
pat に一致する次の行 |
?pat |
pat に一致する前の行 |
x-n |
x 番目の行の n 行前 |
x,y |
x 番目の行からy 番目の行まで |
'x |
文字x でマークされた行 |
" |
直前にいた行 |
EXINIT |
set による設定を格納する環境変数 |
$HOME/.exrc |
エディタ初期化ファイル |
./.exrc |
エディタ初期化ファイル |
set x |
x オプションを有効とする |
set nox |
x オプションを無効とする |
set x=val |
x オプションの値を val とする |
set |
変更されたオプションを表示 |
set all |
全オプションを表示 |
set x? |
x オプションの値を表示 |
autoindent |
ai |
インデントを自動挿入 |
autowrite |
aw |
変更を加える前にファイルの内容を書き出し |
directory |
一時作業ファイル用ディレクトリのパス名 |
|
exrc |
ex |
vi/ex が現在のディレクトリ中の .exrc を読み込めるようにする。本オプションはEXINITシェル変数もしくは$HOMEディレクトリ中の.exrcファイルに設定される。 |
ignorecase |
ic |
検索時に大文字/小文字の違いを無視 |
list |
タブに対しては ^I を、行末には$ を出力する |
|
magic |
パターン中の . [ * を特別な意味を持つと解釈 |
|
modelines |
|
先頭と最後の5 行ずつは、その形式が |
ex:command: または vi:command: |
||
であれば、vi/ex コマンドであると解釈して実行 |
||
number |
nu |
行番号を付加 |
paragraphs |
para |
パラグラフを開始するマクロ名 |
redraw |
高度機能の端末のシミュレート |
|
report |
|
最後に実行したコマンドが report 変数の値を超える数の行を更新した場合にその旨を通知 |
scroll |
コマンドモード行 |
|
sections |
sect |
セクションを開始するマクロ名 |
shiftwidth |
sw |
<、>、または ^D に対するシフト数 |
showmatch |
sm |
入力された ) と }に対応する ( と{ を示す。 |
showmode |
smd |
vi における挿入モードを表示 |
slowopen |
slow |
挿入時の更新の中止 |
term |
vi に対して使用中の端末のタイプを指定 |
|
デフォルトは環境変数 TERM が示す値 |
||
window |
ビジュアルモード行 |
|
wrapmargin |
wm |
行の自動分割 |
wrapscan |
ws |
検索の際バッファの終端 (または先頭) で止まらない。 |
ex の実行に影響を与える環境変数 HOME、PATH、SHELL、TERM、LC_COLLATE、LC_CTYPE、LC_MESSAGES、NLSPATH についての詳細は、environ(5) を参照してください。
システムが選択した値の代わりに用いる、画面の水平方向のサイズ値を 指定します。
エディタの開始時に、最初のファイルの読み込み前に実行する ex コマンドを定義します。複数のコマンドを記述する場合には、縦線 (|) で区切ってください。
システムが選択した値の代わりに用いる、画面の垂直方向のサイズ値を指定します。画面全体の行数、およびビジュアルモードでの 垂直画面サイズとして用いられます。
エディタの一時ファイル
名前付きバッファ用一時ファイル
保存 (preserve) コマンド
復旧 (recover) コマンド
エラーメッセージ
端末の機能ファイル
保持ディレクトリ ( login は当該ユーザーのログイン ID )
エディタ初期化用ファイル
エディタ初期化用ファイル
次の属性については attributes(5) のマニュアルページを参照してください。
ed(1), edit(1), grep(1), sed(1), sort(1), vi(1), curses(3CURSES), term(4), terminfo(4), attributes(5), environ(5), standards(5)
vi と ex ユーティリティは、米国カリフォルニア州バークレー市にあるカリフォルニア大学のコンピュータサイエンス 学部、電子技術・コンピュータサイエンス学科が開発したソフトウェアにもとづいています。
オプションの中には、サポートされ続けてはいるものの、マニュアル上ではコマンド構文標準 (Intro(1) を参照) に準拠している他のオプションに置き換わっているものがあります。たとえば – オプションは -s に変わっています。また引数指定可能な -r オプションは、-L に変わっています。さらに +command は -c command に変わっています。
ファイルが読み込まれたときに、メッセージ file too large to recover with -r option が表示されることがあります。これは、このファイルの編集および保存はできるが、万一編集内容が失われた場合に、-r オプションで回復できないことを意味します。
z コマンドが出力する行数は、物理的ではなく論理的な値です。したがって長い行が存在すると、出力の量は 1 画面分を超えてしまうことがあります。
コマンド行で -s オプションが指定されていると、ファイル入出力エラーが発生しても名前は表示されません。
編集環境は構成用オプションにデフォルトで設定されています。編集作業を開始するとき、ex は EXINIT 環境変数を読み込もうとします。変数が定義されていればエディタは EXINIT の値を使い、定義されていなければ $HOME/.exrc 中に設定された値を使います。$HOME/.exrc がなければ、デフォルト値を使います。
$HOME 以外の現ディレクトリにある .exrc のコピーを使う場合は、EXINIT または $HOME/.exrc の中の exrc オプションを設定してください。exrc を EXINIT または $HOME/.exrc 中で設定すれば、EXINIT で設定されているオプションをローカルな .exrc で無効にすることができます。.exrc を使用するには、$HOME または現ディレクトリにある .exrc が次の条件を満たす必要があります。
.exrc が存在していること。
.exrc の所有者のユーザー ID がプロセスの実ユーザー ID と同じであること。あるいは、プロセスがそれに相当する特権を持っていること
.exrc の所有者以外は書き込むことができないこと。
大文字/小文字の区別をしないで単一の検索を行う簡単な方法はありません。
名前付きバッファ中にテキストがあり、エディタ終了以前にそのテキストが使用されなくとも、エディタは警告を発しません。
入力ファイル中の NULL 文字は捨てられます。結果として生成されるファイル中には現れません。
名前 | 形式 | 機能説明 | オプション | オペランド | 使用法 | 環境 | 終了ステータス | ファイル | 属性 | 関連項目 | 作者 | 注意事項