Em fish shell , a ligação de chave genérica que corresponde, se nenhuma outra ligação corresponder, pode ser definida especificando uma SEQUÊNCIA da string vazia (ou seja, '' ).
Por exemplo:
bind '' self-insert
Eu verifiquei a documentação do zsh para funcionalidade semelhante, diz:
-m
Adicione o conjunto integrado de ligações de meta-chave ao mapa de teclado selecionado. Somente as chaves não vinculadas ou vinculadas à inserção automática são afetadas.
Não tenho certeza se posso usá-lo para o meu propósito.
Qual é a ligação de chave genérica que corresponde se nenhuma outra ligação fizer em zsh?
Em
zsh
, o widget que é invocado quando nenhum mapeamento é encontrado para uma chave (sequência de bytes enviada pelo terminal) é oundefined-key
widget que por padrão emite um bipe, mas você pode redefini-lo para algo diferente, como:Ou insira os bytes brutos à esquerda do cursor com:
Não é
self-insert
,self-insert
em mapas de teclas comoemacs
ouviins
está vinculado a chaves em virtude de estar vinculado aR
intervalos de bytes:São todos os valores de byte de 32 (espaço) a 255 (M-^?) Aqui, excluindo 127 (
^?
que está vinculado abackward-delete-char
).Você pode vincular a outra coisa com:
Embora uma maneira talvez mais idiomática seja redefinir
self-insert
:Esteja ciente de que, para caracteres multibyte, o widget é chamado uma vez para cada byte no caractere e AFAIK, os limites do intervalo podem ser apenas bytes únicos.
self-insert
também funciona apenas para bytes únicos, embora você sempre possa fazer:Para vincular
my-self-insert
o caractere Unicode U+00A1 a U+00FF e fazer a auto-inserção manualmente anexando$KEYS
(os bytes ou sequência de bytes enviados pelo terminal que levou à chamada do widget) para$LBUFFER
(a seção do buffer de edição de linha à esquerda do cursor).