答え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
移動とdch
削除にBSを使用し、zsh
BSと書き換えを組み合わせて使用することがわかりますcub
。絶対列位置指定()tcsh
を実行しているように見え、削除のためにksh93はCRを送信して行全体を書き換えます。hba
dch
答え2
私はそのような命令を見たことがない。考えてみると、単語を削除することは他のタスクよりはるかに複雑で、他のタスクは画面に表示されている内容について何ら気にしないようです。たとえば、単語の終わりは何ですか? 「_」? '-'? '.'?