ユーザーが特定の行を変更できるようにするed
便利なコマンドがあります。c
(rlwrap
行が変更されると、上矢印と下矢印を使用して以前の変更をインポートできるため、を使用すると変更が簡単になります。)
ed
これらの変更を簡単にする機能の1つは、全体またはほとんどを再入力することなく変更したい行をコピーすることで、マウスを使用せずに戻る矢印を使用して簡単に目的を変更できます。編集したい行を貼り付けます。
たとえば、
1 This line must be changed
c
This line must be changed
代わりに、デフォルトの動作は次のとおりです。
1 This line must be changed
c
BLANK LINE
他のプログラムを使ってこれが可能かどうかはわかりませんed
。
答え1
c
のコマンドを使用して行を変更すると、ed
エディタはその行を何に置き換えるかを尋ねます。単純な行エディタとして、新しいテキストをインタラクティブに変更する方法がないため、代替コンテンツを行の以前の内容で事前入力しません。
ただし、ed
Readlineライブラリラッパーと一緒に使用するrlwrap
と、テキストを送信する前にReadlineでインライン編集を実行できますed
。特に、変更したい行をすでに作成している場合最近は十分(まだReadlineの履歴に残るように)Up-Arrowまたは他の適切なキーバインディングを使用して、行の履歴を循環または検索し、コマンドを実行して編集できますc
。
rlwrap
保存した履歴のサイズは、ユーティリティオプションまたはReadline設定ファイルを編集することで調整できます。これは別の質問のトピックです。-s
~/.inputrc
.ed_history ファイルのサイズを大きくする方法
コメント付きのed
編集セッション(#
セッションにコメントを追加)は、2行の文書を作成し、上記の方法で最初の行を変更します。
$ rlwrap ed newfile # start ed with rlwrap
newfile: No such file or directory
a # add lines
this line must change
this line is ok
. # done adding lines
1c # change first line
this line is now ok too # pressed up-arrow to find the old line, edited it
. # done changing
,n # output all lines with line numbers
1 this line is now ok too
2 this line is ok