Sua função copia a linha para a área de transferência.
Para usar o buffer de colar do mouse em vez da área de transferência Ctrl + C / Ctrl + V, execute xsel sem a opção -b .
Para cortar em vez de copiar, exclua o texto depois: defina READLINE_LINE como uma string vazia.
O Bash fornece configurações de terminal definidas por stty precedence sobre suas próprias associações de teclas. Eu acho que a intenção é principalmente para obedecer as configurações do terminal para se o BackSpace envia ^H ou ^? , mas geralmente significa os atalhos de teclado do bash para todos os caracteres listados por stty -a (ou seja, ^C , ^D , ^H , ^Q , ^S , ^W , ^Z , ^\ e ^? ) não são usados por padrão. Você precisa cancelar a configuração stty do caractere de controle que deseja reativar.
Isso funciona para mim com o seguinte código em ~/.bashrc com bash 4.3 no Ubuntu 16.04.
if [[ -n $DISPLAY ]]; then
stty kill ''
copy_line_to_x_clipboard() {
printf %s "$READLINE_LINE" | xsel -i;
READLINE_LINE= READLINE_POINT=0
};
bind -x '"\C-u": copy_line_to_x_clipboard';
fi
Não funciona se eu colar apenas na linha de comando: recebo o efeito mencionado em um comentário, ou seja, pressionar ^U insere um literal ^U . Ele funciona se eu executar stty kill '' e, em seguida, bind -x … em um comando subsequente.