Como posso usar bindear para executar um script?

6

No shell Z, como posso usar bindear para ligar uma sequência de teclas a um script?

    
por Chauncey Garrett 18.06.2013 / 23:00

2 respostas

4

Você pode definir um widget que chama seu script:

my-script_widget() my-script its args
zle -N my-script_widget
bindkey '\ej' my-script_widget

Mas por que você quer chamar seu script diretamente do zle?

Se ele exibir qualquer coisa, isso atrapalhará a exibição. Se você quiser que sua saída seja exibida como outras mensagens do widget, você pode fazer:

my-script_widget() zle -M "$(my-script its args)"

Ou se você quiser a saída inserida no cursor:

my-script_widget() LBUFFER+=$(my-script its args)
    
por 19.06.2013 / 00:49
7

Eu acho que você não precisa de widget para isso:

bindkey -s '\eb' '/path/to/script.sh\n' 

De documentos do zsh :

As well as ZLE commands, key sequences can be bound to other strings, by using ‘bindkey -s’.

    
por 28.08.2015 / 11:56

Tags