Для чего это 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