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