O terminal do gnome pode ser configurado para copiar a seleção sem prompt?

0

Muitas vezes eu quero copiar um conjunto de comandos do terminal, que não tem uma saída; digamos um bloco como este:

prompt$ less file1.txt
prompt$ less file2.txt
prompt$ dhex file2.txt
prompt$ less file3.txt

Agora, se eu selecionar este bloco de texto com o mouse, copie-o com Ctrl-Shift-C; então quando eu colo em um arquivo de texto, o prompt está lá (como esperado) - e então eu tenho que perder tempo apagando o prompt :)

Então eu estava vagando - existe uma configuração para o gnome-terminal, de modo que quando eu faço o mesmo tipo de cópia, acabo com apenas os comandos - sem o prompt? Isto é o que eu quero quando finalmente colar:

less file1.txt
less file2.txt
dhex file2.txt
less file3.txt

Estou interessado em uma solução que me permita obter isso na área de transferência, com apenas a seleção do mouse e Ctrl-Shift-C; Estou ciente que eu poderia fazer history X , mas eu teria que grep it - e pensar em uma expressão grep adequada (e o mesmo problema é se eu gravar um texto datilografado da sessão de terminal com script ).

Quaisquer facilidades que existem para isso? Se não fosse por gnome-terminal , qualquer outro terminal que pudesse ser usado sob o Gnome que oferecesse tal facilidade?

    
por sdaau 30.03.2013 / 00:45

4 respostas

0

Bem, fiquei bastante incomodado com esse problema, então finalmente codifiquei uma solução que vem bem perto: um plugin de filtragem para o gerenciador de área de transferência Glipper, que permite o processamento regex em funções de filtro, que pode ser aplicado ao conteúdo da área de transferência após uma ação Copiar; lançado aqui:

... e aqui está uma captura de tela:

Noentanto,comoeuquerousarissoapenasocasionalmente,afiltragemalternadapodenãoseramelhoridéia(jáquevocêtemquealternarON,copiar/colarealternarOFF)-entãoopluginignoraaoperaçãonormalquandoumsubmenudefiltroaentradaéclicada,seCtrl,Altoucsãomantidos;entãominhaação"mínima" para executar uma filtragem pontual de alerta é assim:

  • Selecione uma região de texto (incluindo prompts) no terminal
  • Pressione Ctrl + Alt + c (atalho padrão) para exibir a janela do menu Glipper
  • Manter qualquer (ou todos) de Ctrl , Alt ou c pressionado,
    • Passe o mouse sobre o item de menu de filtragem
    • passe o mouse sobre e clique no item de menu de filtro (sub) desejado (por exemplo, TermCmdLog )
  • O menu do Glipper desaparece - as teclas mantidas agora podem ser liberadas
  • Mova o ponteiro e clique para focar o editor de texto
  • Colar - o conteúdo colado é modificado pelo filtro clicado (por exemplo, para TermCmdLog , a entrada tem prompts removidos e as linhas não prontas são comentadas)

No final, eu ainda preferiria que o próprio terminal tivesse um acorde de teclado para saída filtrada (digamos, pressione Ctrl + Deslocamento + a , então libere a , então enquanto pressiona os outros, pressione c ) - mas então isso seria OK para um único filtro; e se você quiser escolher um dentre vários filtros em tempo de execução, novamente há o problema de ter outra ação para fazer uma escolha; e se for resolvido via janela GUI de entradas de menu - então este pluggin é tão bom, eu acho. Melhor ainda, funciona para qualquer fonte GUI de texto (copiável) na área de trabalho do Gnome - não apenas para terminal.

Infelizmente, ele é desenvolvido para o Gnome / Gtk 2 / Python 2.7, então ele já está obsoleto; ainda assim, espero que possa esperar que os outros (até que eu ouço de uma solução melhor - espero que neste segmento :) ),
Felicidades!

    
por 09.04.2013 / 03:16
1

Supondo que você esteja usando o bash como shell, faça algo como:

history -a ; tail -5 $HISTFILE

substituindo 5 por quantos comandos você quiser voltar. Isso deve te dar uma listagem limpa que irá copiar / colar facilmente. Não exatamente o tipo de abordagem que você parece estar pescando, mas pode servir.

    
por 30.03.2013 / 07:43
1

No Terminal Gnome, você pode selecionar um bloco de texto usando a tecla Mouse + CTRL. Dessa forma, você pode copiar toda a saída do console sem o prompt. por exemplo:

    
por 14.12.2017 / 07:55
0

Se você usa multiplexador de terminais tmux, você pode fazer isso facilmente e muito mais!

Noam Manos já apontou na outra resposta O Gnome Terminal permite copiar blocos com Ctrl + Mouse e arrastar. Eu só queria apontar outra alternativa que é mais poderosa. O tmux suporta colocar o seu terminal em "modo de cópia" e permite que você faça cópias de bloco e muito mais - Ele ainda suporta vários buffers de pasta que você pode copiar e usar depois.

Eu uso as seguintes linhas no meu arquivo .tmux.conf para usar o vi keybindings para cópia de bloco:

bind-key -T copy-mode-vi v send-keys -X begin-selection
bind-key -T copy-mode-vi y send-keys -X copy-selection
bind-key -T copy-mode-vi r send-keys -X rectangle-toggle 

É necessário algum esforço para aprender a configurar e usar o tmux, mas vale a pena e estou feliz com isso.

    
por 05.11.2018 / 20:37