`self-insert` の目的は何ですか?

`self-insert` の目的は何ですか?

zsh のは何self-insertのためです? prezto 構成のいたるところで見かけますが、何をするコマンドなのか理解できません。ZLE ドキュメントでもそれが何なのかは明記されていませんが、いくつかの異なるコンテキストで言及されています。

答え1

キーにバインドされている場合、この関数はキー自体を入力文字として挿入します。たとえば、キーがaにバインドされている場合self-insert、キーを押すと「a」が入力されます。

からズシュル(1)マニュアルページ (zsh バージョン 5.5.1):

  self-insert (printable characters) (unbound) (printable characters and some con‐
  trol characters)
         Insert a character into the buffer at the cursor position.

比較のために、リードライン(3)マニュアルページ (bash バージョン 4.4.023):

  self-insert (a, b, A, 1, !, ...)
         Insert the character typed.

答え2

ドキュメントから、

self-insert または self-insert-unmeta にバインドされていないその他の文字はビープ音が鳴り、無視されます。

シェルをいじっていて、関数に '.' をバインドし、その後バインドを解除しました。突然、どこにもドットを入力できなくなりました。 bindkeysが表示されました"/"-"~" self-insertが、別のクリーンなシェルでは でした"/"-"-" self-insert。カットアンドペーストでも、文字は完全に無視されました。

ドットを元に戻すには、それを自己挿入にバインドする必要がありました。

bindkey '.' self-insert

関連情報