在 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