Verboo Code: como copiar trechos da conversa com /copy
Voltar para o Blog
Artigoverboo codetutorialdev toolshow to

Verboo Code: como copiar trechos da conversa com /copy

Mafra9 de novembro de 20267 min de leitura

O agente terminou a tarefa e devolveu três arquivos. Agora você precisa levar isso para o editor. Começa o ritual: arrastar o mouse por cima do bloco, o terminal redesenha, a seleção some, e o Ctrl+C acaba pegando a linha do spinner junto com o código. O /copy existe para pular o ritual.

Ele tem três comportamentos que quase ninguém usa: um seletor de blocos, uma tecla que grava direto em arquivo e três caminhos de área de transferência que ele tenta em ordem quando o terminal está dentro de SSH ou de tmux. Abaixo vai o comando, a saída literal e o que fazer quando nada é colado.

O que o comando /copy faz?

Copia o texto de uma resposta do agente para a área de transferência e grava o mesmo texto num arquivo temporário. Quando a resposta tem bloco de código, abre um seletor antes de copiar.

Não é captura de tela. O comando lê a mensagem que já está guardada na sessão e escreve o texto inteiro, então indentação, tabela e cerca de código chegam preservadas.

O que você quer copiarO que digitar
A última resposta do agente/copy
A resposta anterior/copy 2
Um bloco de código específico/copy e escolher no seletor

Como copiar a última resposta?

Digite o comando sozinho e confirme. Sem argumento, o alvo é a mensagem mais recente que o agente escreveu.

/copy

A confirmação vem em duas linhas, com a contagem do que foi copiado e o caminho do arquivo:

Copied to clipboard (1428 characters, 37 lines)
Also written to /tmp/claude/response.md

Use a contagem como conferência rápida. Se o número de linhas for bem menor do que o da resposta na tela, você copiou outra resposta ou pegou só um trecho.

Como copiar uma resposta anterior?

Passe a posição contando de trás para frente: 1 é a última, 2 é a penúltima.

/copy 2

A contagem só considera mensagens do agente que têm texto. Turno em que ele apenas chamou ferramenta, e mensagem de erro da API, ficam de fora. Então /copy 3 é a terceira resposta de fato, não a terceira linha do log.

O alcance é de 20 respostas para trás. Pedir mais do que existe mostra a contagem disponível em vez de copiar a errada:

Only 3 assistant messages available to copy

E argumento que não é número inteiro positivo cai na mensagem de uso:

Usage: /copy [N] where N is 1 (latest), 2, 3, … Got: abc

Como copiar só um bloco de código?

Rode /copy numa resposta que tenha pelo menos um bloco delimitado por cerca. Em vez de copiar tudo, ele abre o seletor Select content to copy: com um item por bloco.

Item do seletorO que copia
Full responseA resposta inteira. Ao lado aparece a contagem de caracteres e linhas.
Primeira linha do blocoApenas aquele bloco. O rótulo é a primeira linha cortada em 60 caracteres, e a descrição traz a linguagem e, quando o bloco tem mais de uma linha, o número de linhas.
Always copy full responseA resposta inteira, e desliga o seletor para as próximas vezes.

Se a resposta não tem nenhum bloco de código, o seletor não aparece: o comando copia a resposta inteira direto. É por isso que às vezes /copy pede uma escolha e às vezes não pede.

Para que serve a tecla w no seletor?

Para gravar o item escolhido em arquivo sem tocar na área de transferência. Num bloco marcado com py, a confirmação é Written to /tmp/claude/copy.py.

TeclaAçãoO que aparece
entercopia e grava o arquivoCopied to clipboard (...)
wsó grava o arquivoWritten to ...
esccancela sem copiarCopy cancelled

É a diferença entre "quero colar agora" e "quero o arquivo no disco". Se você já tinha algo importante copiado, w evita sobrescrever.

Onde fica o arquivo que o /copy grava?

No diretório temporário do sistema, dentro de uma pasta chamada claude, que é o nome herdado e continua sendo usado. No Linux, /tmp/claude/. No macOS, dentro de $TMPDIR.

  • Resposta inteira: response.md.
  • Bloco de código: copy. mais o nome da linguagem escrito na cerca, limpo para letras e números. Cerca py gera copy.py; cerca typescript gera copy.typescript.
  • Bloco sem linguagem, ou marcado como plaintext: copy.txt.

O caminho exato sai na própria confirmação, então não precisa adivinhar. Como é diretório temporário, o sistema pode limpar o arquivo depois de um tempo: se o conteúdo importa, mova para dentro do projeto.

Fluxograma do /copy: comando, seletor de conteúdo, confirmação com contagem e arquivo temporário, com ramo para os três caminhos de área de transferência
O caminho do /copy. O arquivo temporário é gravado nos dois casos, inclusive quando o clipboard falha.

Por que o /copy não cola nada?

Porque a área de transferência não faz parte do protocolo do terminal. O comando não escreve no clipboard do sistema por conta própria: ele tenta até três caminhos, em ordem, e cada um depende do ambiente.

CaminhoQuando é usadoO que esperar
Utilitário nativo: pbcopy no macOS, wl-copy, xclip ou xsel no LinuxSessão local, sem SSH_CONNECTIONO caminho mais confiável
Buffer do tmux: tmux load-buffer -w -, ou load-buffer - quando o terminal é iTerm2Dentro do tmuxCola com o prefixo do tmux; chegar ao sistema depende do set-clipboard
OSC 52, sempre emitido como última tentativaTodo o resto, inclusive SSHO terminal precisa aceitar a sequência. Falha em silêncio

Duas situações explicam a maior parte dos "não colou":

  • tmux sem repasse. Dentro do tmux, a sequência OSC 52 vai embrulhada num pacote DCS. O tmux 3.3 ou mais novo só repassa isso com allow-passthrough ligado, e a opção vem desligada. Sem ela, o tmux descarta o pacote sem avisar: nenhum erro na tela.
  • Terminal que ignora OSC 52. Alguns emuladores recebem a sequência e não fazem nada com ela, por padrão. O iTerm2 é o caso mais conhecido.

O ajuste do tmux é uma linha em ~/.tmux.conf:

set -g allow-passthrough on

Recarregue com tmux source-file ~/.tmux.conf e teste de novo. Em SSH puro, sem tmux, o caminho é o OSC 52 mais a permissão no terminal do seu lado da conexão.

E quando a colagem não sai, o caminho mais curto é não depender dela. O arquivo já está no disco:

cat /tmp/claude/response.md

Armadilha: o seletor só lista blocos de primeiro nível. A extração percorre a resposta no nível de cima, então bloco aninhado dentro de lista, citação ou item numerado pode não virar opção. Se o bloco certo não estiver na lista, escolha Full response e recorte no editor.

Como fazer o /copy copiar sempre a resposta inteira?

Duas formas, e as duas gravam a mesma preferência global. No seletor, escolha Always copy full response, e a confirmação termina com Preference saved. Use /config to change copyFullResponse. Ou abra /config e mude copyFullResponse para true.

Com a preferência ligada, o seletor deixa de aparecer e /copy copia a resposta inteira direto. Para voltar ao seletor, mude a mesma chave para false.

Selecionar com o mouse não resolve o mesmo problema?

Resolve em parte. No modo fullscreen, selecionar com o mouse já copia ao soltar o botão, comportamento controlado por copyOnSelect, que vem ligado por padrão. O /copy cobre o que a seleção faz mal: pegar um bloco inteiro sem mirar, pegar a resposta anterior e funcionar fora do fullscreen.

MétodoBom paraLimite
Seleção com mouseQualquer trecho visível, em fullscreenDepende de mirar; redesenho da tela atrapalha
/copyÚltima resposta, bloco inteiro, resposta anteriorSó texto de mensagem do agente
/exportA conversa inteira num arquivoÉ a sessão toda, não o trecho

Copiar o resultado é a parte fácil. A parte cara é poder pedir a terceira versão do mesmo bloco sem olhar o medidor antes de dar Enter. Na Verboo Code o terminal é o mesmo, o /copy é o mesmo e o token não entra na conta do mês: você cola, testa e pede de novo.

Gostou deste artigo?
Compartilhe conhecimento com sua rede.
// Leia também

Artigos relacionados