コマンドを中断するために ^C を入力すると、「^C」と表示されます。

コマンドを中断するために ^C を入力すると、「^C」と表示されます。

Bash 4.4(Bash 3.2ではありません)でコマンドを入力して停止するには、シェルが新しいプロンプト行を表示する前にカーソルにテキストを挿入することがCtrlわかりCました^C。同じタスクを実行するようにzshを設定する方法はありますか?

(これはやや関連しています。この問題、回転方法を尋ねるメッセージです。去るこの質問は Bash に関するものですが、この動作です。この回答別の質問は、コマンドラインに特殊文字が表示されたときにzleが強調表示されるようにする方法を示していますが、コマンドラインに0x03バイトのテキストを挿入せずに制御文字を入力したときにいくつかのテキストを表示しようとしています。 )

ベストアンサー1

これは少なくとも単純な場合には機能します。

precmd () {
  trap 'print -P "%B%F{red}^C%f%b"; zle send-break' INT
}
preexec () {
  trap - INT
}

私は完了するのに長い時間がかかる機能のような「難しい」状況でそれがどのように機能するかを探りませんでした。

おすすめ記事