Como enviar com eficiência o texto digitado na linha de comando para a área de transferência do sistema sem usar o mouse?

14

Digamos que eu digitei o seguinte comando longo na linha de comando

 $ some very long command that I want to copy to the clipboard

Como posso colocar isso na área de transferência do sistema com eficiência? Estou usando o Terminal Gnome 2.23.1.

Sei que posso pegar o mouse, destacá-lo e copiá-lo, mas quero uma solução geral para o teclado.

Também seria bom se generalizasse para vários programas de linha de comando.

Por exemplo, no bash no modo vi, eu posso pressionar ve editar o comando no vim e, assim, usar a cópia do Vim para os recursos da área de transferência, mas isso não funciona ao usar R na linha de comando. Também é um pouco lento.

Gostaria que, no modo vi, pudesse pressionar yye copiar o conteúdo da linha na área de transferência do sistema, mas isso não parece funcionar. Além disso, qualquer comando de puxar parece não copiar o conteúdo para a área de transferência do sistema; eles parecem copiar apenas para um buffer usado pelo bash.

ATUALIZAR:

Depois de postar eu achei

Jeromy Anglim
fonte
1
Não é exatamente o que você pergunta: usando a tela você pode conseguir o que pede seguindo esta resposta: askubuntu.com/questions/56570/...
enzotib
Após esta resposta ( askubuntu.com/a/503861/43594 ), você pode ativar as Teclas do Mouse no Acesso Universal e usar o teclado numérico para mover o mouse, com o número cinco atuando como um clique. Quando ele é clicado duas vezes rapidamente, seleciona a palavra sobre a qual o ponteiro está passando o mouse. Quando clicar rapidamente três vezes, ele selecionará a linha inteira. Isso, juntamente com as respostas sobre como copiar (Ctrl-Shift-C), deve fazer quase tudo o que você precisa.
James

Respostas:

3

Você também pode usar um gerenciador de área de transferência como parcellite. É um gerenciador de área de transferência do GTK + que também possui recursos da área de transferência da linha de comando

Você pode usá-lo via linha de comando

echo "some very long command that I want to copy to the clipboard" | parcellite
##or##
parcellite "some very long command that I want to copy to the clipboard"

Como não está instalado por padrão, você precisará instalar o parcellite por sudo apt-get install parcellite

Nitin Venkatesh
fonte
1
obrigado, pelo menos quando estou no bash, às vezes usei echo my command | xclip -se c; no entanto, quando o comando tem aspas e outros caracteres especiais, echogeralmente não o copia literalmente.
Jeromy Anglim
1

Portanto, o fechamento que posso obter é usando o histórico e o xclip em conjunto, fazendo isso

echo !! | xclip

Isso colocará o último comando na área de transferência do botão central. Ainda estou procurando algo melhor, pois gostaria de reduzi-lo a um comando. No entanto, fico desconectado porque o histórico não funciona em scripts de shell e não sei se existe uma maneira de usar !!corretamente em um alias. É claro que isso não parece exatamente o que você está pedindo, minha intenção é usá-lo para tomar notas do que estou fazendo. Algum pensamento?

user27643
fonte
Além disso, ainda há a questão de como você copia comandos com aspas.
Jeromy Anglim
0

Você poderá usar Ctrl+ Shift+ Cpara copiar e Ctrl+ Shift+ Vpara colar em qualquer lugar do Terminal.

Dirk Hartzer Waldeck
fonte
3
Você ainda precisa do mouse para selecionar o texto.
enzotib
doh! ponto muito válido
Dirk Hartzer Waldeck 05/10
2
O que levanta a questão: é possível personalizar o terminal ou o bash para poder selecionar o texto usando o teclado?
Jeromy Anglim
@JeromyAnglim Related: stackoverflow.com/q/312213/1172302
Nikos Alexandris