Como você atribui comandos a chaves no Terminal?

10

Existe uma solução para atribuir combinações de teclas especiais a palavras no uso do terminal. Por exemplo, o comando less é muito útil e eu uso muito para canalizar a saída de outro processo através dele.

A idéia seria configurar combinações de teclas especiais que estão ativas somente no uso do terminal atribuído para escrever comandos diferentes? Então, pressionar Ctrl + L na janela do terminal pode gravar

| less

ou Ctrl + G pode representar

| grep

Nota: eu quero dizer apenas adicionando as letras à linha de comando não executar o finalmente. Um jeito parecido com o que é tabcompletion mas mais específico.

    
por NES 04.01.2011 / 13:54

1 resposta

10

Sim, você pode usar o comando bind

bind '"\ey"':"\"less \C-m\""

Isso mapeia Alt-e para o comando menos e executa-o (com o \ C-m aka Ctrl-m)

Provavelmente para o | você precisa escapar disso.

bind '"\ey"':"\"\|less \C-m\""

Se você quiser apenas anexá-lo à linha de comando, remova o * \ C-m \ ""

Tenha cuidado, pois já existem algumas ligações definidas:

Ctrl + A    Go to the beginning of the line you are currently typing on
Ctrl + E    Go to the end of the line you are currently typing on
Ctrl + L                Clears the Screen, similar to the clear command
Ctrl + U    Clears the line before the cursor position. If you are at the end of the line, clears the entire line.
Ctrl + H    Same as backspace
Ctrl + R    Let’s you search through previously used commands
Ctrl + C    Kill whatever you are running
Ctrl + D    Exit the current shell
Ctrl + Z    Puts whatever you are running into a suspended background process. fg restores it.
Ctrl + W    Delete the word before the cursor
Ctrl + K    Clear the line after the cursor
Ctrl + T    Swap the last two characters before the cursor
Esc + T     Swap the last two words before the cursor
Alt + F     Move cursor forward one word on the current line
Alt + B     Move cursor backward one word on the current line
Tab     Auto-complete files and folder names

A tecla Control, como você pode ver acima, é feita com C-m, então você pode iniciar o comando less com Ctrl-g, como segue:

bind '"\ C-g"': "\" \ | menos * \ C-m \ ""

Para obter os códigos de chave para o Alt (somente para o ALT), você pode usar o comando read do shell:

@~$ read
^[y

^ [y é igual a \ ey

Para mais informações, esta questão foi respondida também em stackoverflow:

link

    
por tmow 04.01.2011 / 14:31