Для чего нужна `self-insert`?

Для чего нужна `self-insert`?

Для чего это self-insertв zsh? Я вижу это везде в конфигах 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.

Для сравнения, изreadline(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. Символ был полностью проигнорирован, даже для копирования и вставки.

Чтобы вернуть свою точку, мне пришлось привязать ее к self-insert:

bindkey '.' self-insert

Связанный контент