Comando integrado Bash bind
Em sistemas operacionais do tipo Unix, bind é um comando embutido do shell Bash. Você pode usá-lo para alterar como o bash responde às teclas, e combinações de teclas, sendo pressionadas no teclado.
Descrição
Quando você estiver digitando na linha de comando do bash, pressione Ctrl+UMA para mover o cursor para o início da linha, ou Ctrl+E para movê-lo para o fim. Essas são “combinações de teclas” – as ações do teclado são vinculadas a uma função que move o cursor.
No bash, os atalhos de teclado padrão correspondem aos do editor Emacs, mas você pode alterá-los para o que funciona melhor para você.
Como o bind representa as chaves
Bind representa as teclas do teclado usando cadeias de caracteres especiais e literais. Os caracteres especiais são:
C- | Representa manter pressionado o Ctrl e pressionando as teclas que seguem o traço. |
e | A tecla Escape. Isso é usado para outras ligações, como a chave Meta. Por exemplo, o Alt key é uma meta-chave em muitos teclados. |
Pode ser muito confuso e a maneira como o bash codifica as chaves nem sempre está claramente documentada. Para ver como o bind codifica as combinações de teclas padrão, você pode executar o bind -P.
Você também pode ver as configurações de ligação listadas no arquivo \/etc \/inputrc. Para combinações incomuns, você pode usar Ctrl+V para encontrar qualquer código-chave, conforme descrito abaixo.
Encontrar um código-chave
Se não tiver certeza de qual é o código de uma combinação de teclas específica, você pode pressionar Ctrl+V em um prompt do bash e pressione a combinação de teclas. Esta ação é chamada de inserção entre aspas e exibe o código da tecla pressionada. Por exemplo, se você pressionar Ctrl+V, então F7, você verá:
^[[18~
Here, ^[ is an escape character, so to represent this keycode in a string we can use:
"e[18~"
For examples of using this keycode in a command, see examples.
Syntax
bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function | readline-command]
Opções
O comando bind embutido tem as seguintes opções:
-m mapa de teclado |
Use o mapa de teclas como o esquema de mapeamento de teclas durante a sequência de comando atual. Os valores possíveis do mapa de teclas são:
|
||||||||||||||||
-eu | Liste os nomes das funções de edição vinculáveis. | ||||||||||||||||
-P | Liste os nomes das funções de edição vinculáveis e quais são suas vinculações, se houver. | ||||||||||||||||
-p | O mesmo que -P, mas fornece saída em um formato que pode ser usado como entrada para o comando bind. | ||||||||||||||||
-S | Liste as sequências de teclas que invocam macros e seus valores. | ||||||||||||||||
-s | O mesmo que -S, mas fornece saída em um formato que pode ser usado como entrada para vincular. | ||||||||||||||||
-V | Variáveis de lista e seus valores, que são usados na vinculação de chave bash. | ||||||||||||||||
-v | O mesmo que -V, mas fornece saída em um formato que pode ser usado como entrada para vincular. | ||||||||||||||||
-q nome-da-função |
Exibe (consulta) a ligação de tecla para a função bash nome-da-função. | ||||||||||||||||
-u nome-da-função |
Desvincule todas as teclas vinculadas à função de edição nome-da-função. | ||||||||||||||||
-r keyseq |
Remova todas as ligações para o keyseq da sequência de teclas. | ||||||||||||||||
-f nome do arquivo |
Leia as combinações de teclas do nome do arquivo e use-as como entrada para o comando bind. | ||||||||||||||||
-x keyseq: shell-command |
Vincule um comando. O comando shell shell-command será executado por bash quando ele receber a sequência de teclas do tecladoseq. | ||||||||||||||||
-X | Liste as sequências de teclas vinculadas por -x em um formato adequado para vinculação de entrada. |
Exemplos
bind -m vi
Use o mapeamento de teclado do vi no bash, permitindo que você manipule o texto na linha de comando como faria no vi.
bind -l
Liste todas as funções de edição vinculáveis.
bind -P
Igual ao comando acima, mas também lista quais são as ligações atuais da função, se houver.
bind '"e[18~":"Hi!"'
Vincule uma macro ao seu F7 (código e[18~)comotextoOlá!Quandovocêpressiona[18~)withthetextHi!WhenyoupressF7, Oi! será inserido na linha de comando como se você o tivesse digitado. Observe que ambos os lados dos dois pontos são colocados individualmente entre aspas duplas e todo o argumento está entre aspas simples. Para obter mais informações sobre códigos-chave, consulte localizar um código-chave, acima.
bind "C-k":kill-line
Ligar Ctrl+K para a função kill-line, que em bash significa cortar todo o texto do cursor até o final da linha.
bind "C-y":yank
Ligar Ctrl+Y para a função yank, que em bash significa colar o último texto que foi recortado.
bind -q yank
Relate qual combinação de teclas está vinculada à função de arrancamento. A saída é semelhante a esta:
yank can be invoked via "C-y".
bind -r "C-y"
Remova todas as ligações para a sequência de teclas Cy. A função yank não está mais vinculada a nada.
bind -x '"eOS":"fortune | cowsay"'
Amarre o seu F4 chave para executar o comando fortuna | cowsay.
bind -p > mybinds
Envie todas as combinações de teclas para um arquivo chamado mybinds, em um formato que pode ser usado como entrada para vincular. Por exemplo, você pode abrir mybinds em um editor de texto, fazer alterações nas ligações e salvar o arquivo. Então, você pode aplicar suas alterações com o próximo comando.
bind -f mybinds
Arquivo de configuração
\/etc \/inputrc | O arquivo de configuração padrão de ligações de teclas para todo o sistema. |
Comandos relacionados
alias – Crie um nome alternativo para um comando.
set – Definir atributos de shell ou exibir variáveis de ambiente.
0 Comments