edは、次のn行をできるだけ簡潔に印刷します。

edは、次のn行をできるだけ簡潔に印刷します。

私はDSLのバージョンが他のツールにed表示されるので、DSLをよりよく理解しようとしています。sedvim

現在の行から始まり、4行以下に拡張される明示的な範囲を使用edして次の4行を印刷するには、このオプションを使用します。.,+4n.,+4

しかし、文脈を把握するために、現在の行の周りに数行を印刷することが重要であるように見え、いくつかの構文的砂糖が必要です。

現在の行に基づいて行範囲の略語がありますかed

たとえば、以下の内容は.,+4nかなり長く見えます。

$ touch ~/foo
$ ed '-p* ' ~/foo
0
* 0a
1
2
3
4
5
6
7
8
9
10
11
.
* 5
5
* .,+4n
5   5
6   6
7   7
8   8
9   9

答え1

-4,+4n最初の4行、現在の行、次の4行(番号付き)が印刷されます。

同じ内容を書くもう一つの方法は少し短いことです-4z8n。最初に指定された行(ここ)に移動してから、その行と追加の行(ここ)を表示することを除いて、zコマンドが適用されます。行に番号を付けます。実際の違いは、コマンドを出すとp-48nzn 再び(今は数字はありません)表示されます8行(またはz初期コマンドの後に入力した数字)

どちらのコマンドも「現在行」を変更するため、手動で戻るか-4移動する前に表示を設定してから(例を使用してka)、その表示に戻す必要があります(例を使用'a)。残念ながら、エディタはed同時に与えられた複数のコマンドを許可しません。

このzコマンドはそうではありません。基準ededこれはコマンドですが、edGNUシステムとBSDシステムの両方でサポートされています。

を使用すると、exこのコマンドは.z.5現在の行を中央に置き、現在のバッファの5行を表示します。ここでは、カーソルを最後に表示された行の下に移動することもできます。

関連情報