Sobre Alt + x em zsh e como vincular Alt + x a outra coisa

1

Quando eu digitar Alt-x , execute: será exibido:

~ % 
execute: _

E posso continuar o tipo (o espaço não tem efeito):

~ %        
execute: what'sthis

Q1: para que serve essa promoção?

Q2: Como posso modificar este atalho para outro atalho de chave? Porque M-x no emacs é bastante útil, e eu uso shell no emacs frequentemente, então os dois entram em conflito.

Eu tenho google por horas, mas ainda não tenho respostas (talvez minhas palavras-chave não estejam corretas - google: "zsh" + "excute:" , "google: zsh keybinding bindkey

    
por 陳 力 26.04.2018 / 11:12

1 resposta

4

Se você fizer isso:

bindkey | grep -F '^[x'

ou simplesmente:

bindkey '^[x'

ou se tiver dúvidas sobre como expressar Alt + x:

bindkey | grep -w x

Você verá:

"^[x" execute-named-cmd

Esse é o nome do widget ligado ao ESC x e a maioria dos terminais envia a seqüência de caracteres ESC x pressionando Alt + x

info zsh execute-named-cmd

Irá lhe dizer o que esse widget faz (você pode precisar instalar o pacote zsh-doc em alguns sistemas).

Como o nome sugere, ele solicita um comando para executar. Comandos aqui sendo widgets zsh, comandos do editor. Isso é o equivalente de emacs ' Meta-x , exceto que são comandos do editor zsh em vez do comando emacs (o comando é chamado execute-extended-command in emacs )

Por exemplo, se no prompt, você digitar backward-delete-char e pressionar Return , ele invocará aquele widget que, por padrão, está vinculado a Backspace . Você pode fazer exatamente o mesmo em emacs .

Se, em vez disso, você digitar desc Guia ( Guia para preenchê-lo em describe-key-briefly , um widget não vinculado a nenhuma tecla por padrão e também encontrado em emacs ) e pressione Retornar , você verá outro aviso:

$
Describe key briefly: _

Onde você pode pressionar, digamos, Alt + x para ver o que está vinculado. Você teria então:

"^[x" is execute-named-cmd

Se você fizer o mesmo em emacs , verá:

M-x runs the command execute-extended-command

Para ver a lista de widgets, execute zle -al , zle -l para os não-internos, bindkey para listar as combinações de teclas.

Você pode ligar Alt + x a outra coisa com

bindkey "^[x" some-widget
    
por 26.04.2018 / 18:30

Tags