答え1
そんなものはない、ctlseq
文書には、言葉単語。また、消去するためにどの背景色を使用するか、単語の右側にあるものを左にシフトするかどうかという問題もあります。端末の右余白で折り返されている単語を考慮する必要があるかもしれません。
いくつかのオプションは次のとおりです:
消去したい単語のセルと同じ数の BS 文字を送信し、その後に SPC (現在の背景色を使用することに注意してください) を送信し、さらに BS 文字 (カーソルを再び戻すため) を送信します。
$ printf 'foo bar\b\b\b \b\b\b+\n' foo +
事実上すべての端末で動作するはずです。
同じですが、 BS シーケンスを使用する代わりに、
tput cub x
(x
セルの数) を使用してカーソルをその量だけ戻します。また、を使用してtput ech x
それらのセルを消去できます (現在の背景色を使用するかどうかは端末によって異なります)$ printf 'foo bar'; tput cub 3; tput ech 3; printf '+\n' foo +
の代わりに
tput ech x
、tput el
行末まで消去したりtput dch x
、消去x セル (その後の内容を左にシフトします)。
(tput
これは terminfo データベースへのシェル インターフェイスです。ハード コーディングのエスケープ シーケンスを回避するという考え方で、ご使用の言語に相当するものを使用してください)。
backward-kill-word
いくつかのシェルのウィジェット (script
たとえば、出力をログに記録するために使用)を見ると、readline
は移動に BS を、dch
削除には BS を使用し、 はzsh
BS と と書き換えの組み合わせを使用していることがわかりますcub
。 は絶対列位置決め ( )tcsh
を実行しているようで、は削除に使用し、ksh93 は CR を送信して行全体を書き換えます。hba
dch
答え2
このようなシーケンスは見たことがありません。よく考えてみると、単語を削除するのは非常に複雑で、他の操作よりも複雑です。また、他の操作では画面上の内容はまったく考慮されないと思います。たとえば、単語の終わりは何でしょう? 「_」? 「-」? 「.」?