Eu gostaria de ser capaz de copiar e colar texto na linha de comando no Bash usando as mesmas combinações de teclas que o Emacs utiliza por padrão (ou seja, utilizando C-space
para set-mark
, M-w
copiar o texto, C-y
, M-y
para colá-lo, etc.).
A documentação do GNU Bash diz que o Bash vem com algumas dessas ligações de teclas configuradas por padrão.
Por exemplo, yanking ( C-y
) funciona por padrão no meu terminal. No entanto, não pode obter o set-mark
e copy
comandos para o trabalho, e eles não parecem ser vinculado a quaisquer chaves por padrão.
Geralmente, a maneira como um usuário pode definir suas próprias associações de teclas é adicioná-las .inputrc
. Então, procurei e encontrei as seguintes funções bash na documentação que presumo que podem me ajudar a definir o comportamento semelhante ao Emacs que eu quero (ou seja, set-mark
com C-space
e copy
com M-w
).
copy-region-as-kill ()
Copie o texto da região para o buffer de interrupção, para que ele possa ser arrancado imediatamente. Por padrão, este comando é ilimitado.
e
set-mark (C-@)
Coloque a marca no ponto. Se um argumento numérico for fornecido, a marca é definida para essa posição.
Se bem entendi, o acima significa que copy-region-as-kill
não está vinculado a nenhuma sequência de teclado por padrão, enquanto set-mark
está vinculado C-@
por padrão.
Eu tentei C-@
no meu terminal, mas não acho que ele funcione set-mark
porque não vejo nenhum texto destacado quando movo o cursor. De qualquer forma, tentei adicionar ligações de teclado ( M-w
e C-
) às funções copy-region-as-kill
e set-mark
acima no meu .inputrc
e recarregá-lo com isso C-x C-r
, mas isso não funcionou. Eu sei que minhas outras entradas .inputrc
funcionam porque tenho outras combinações de teclas definidas pelo usuário.
Existe algo que estou fazendo de errado? Estou faltando alguma coisa?
bash
e qual programa do terminal você está usando?