ESC + {: O que é e onde posso saber mais sobre isso?

32

Eu estava brincando no prompt do bash e pressionei ESC seguido de {, após o qual o shell mostrava todos os arquivos para conclusão, em uma string de filtro de arquivos. Por exemplo: se eu tivesse digitado bash Cseguido por ESC+{, o shell mostraria o seguinte: bash CHECK{,1,2{,23{336{,66666},6},3{,6}}}preenchimento automático de todos os arquivos e diretórios possíveis, começando com C, mostrando todos os arquivos e diretórios experimentais que eu criei.

O que é ESC + {e onde posso saber mais sobre isso?

Eu vejo isso no CENTOS e Mac OSX com bash.

Prem
fonte

Respostas:

49

Para descobrir sobre uma ligação de chave.

Em bash:

$ bind -p | grep -a '{'
"\e{": complete-into-braces
"{": self-insert

$ LESS='+/complete-into-braces' man  bash
   complete-into-braces (M-{)
          Perform filename completion and insert the list of possible com
          pletions  enclosed within braces so the list is available to the
          shell (see Brace Expansion above).

Ou com info:

info bash --index-search=complete-into-braces

(ou info bashuse o índice com conclusão ( ichave))

No entanto, observe que a página de informações pré-criada que vem com fontes do bash-4.3 está faltando pelo menos algumas entradas de índice, incluindo a que complete-into-braces, portanto, a menos que o seu SO reconstrua a página de informações das fontes do texinfo, o comando acima não funcionará.

Em zsh

$ bindkey| grep W
"^W" backward-kill-word
"^[W" copy-region-as-kill
$ info --index-search=copy-region-as-kill zsh
copy-region-as-kill (ESC-W ESC-w) (unbound) (unbound)
 Copy the area from the cursor to the mark to the kill buffer.

 If called from a ZLE widget function in the form 'zle
 copy-region-as-kill STRING' then STRING will be taken as the text
 to copy to the kill buffer.  The cursor, the mark and the text on
 the command line are not used in this case.

Ou mansupondo que o lesspager seja para bash:

LESS='+/copy-region-as-kill' man zshall

zshtambém possui um describe-key-brieflyque você pode vincular em uma chave ou sequência de teclas, como Ctrl+XCtrl+Habaixo:

bindkey '^X^H' describe-key-briefly

Então você digita Ctrl+XCtrl+Hseguido pela tecla ou combinação de teclas a descrever. Por exemplo, digitar isso Ctrl+XCtrl+Hduas vezes seria exibido abaixo do prompt:

"^X^H" is describe-key-briefly

Em tcsh

É basicamente o mesmo, zshexceto que tcshnão tem uma página de informações.

> bindkey | grep -a P
"^P"           ->  up-history
"^[P"          -> history-search-backward
> env LESS=+/history-search-backward man tcsh
[...]

Em fish:

> bind | grep -F '\ec'
bind \ec capitalize-word
> help commands

Qual deve iniciar o seu navegador preferido. E procure capitalize-wordlá.

Stéphane Chazelas
fonte