“自我插入”是用来做什么的?

“自我插入”是用来做什么的?

在 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 的其他字符都会发出蜂鸣声并被忽略。

我弄乱了我的 shell,将“.”绑定到一个函数,然后解除绑定。突然,我无法在任何地方输入点。 bindkeys显示"/"-"~" self-insert,但在另一个干净的 shell 中显示"/"-"-" self-insert。该字符被完全忽略,即使是剪切和粘贴也是如此。

为了找回我的点,我必须将其绑定到自插入:

bindkey '.' self-insert

相关内容