Enquanto eu aprendia mais sobre o Fabric (framework de IA de código aberto), descobri que o macOS tinha dois comandos nativos para copiar e colar o conteúdo da área de transferência no terminal: pbcopy
e pbpaste
. O nome deles vem de “pasteboard”, que é o termo usado no macOS para a área de transferência.
Como esses dois comandos não funcionam no Linux e impactariam diretamente na forma como eu usava ferramentas de linha de comando, decidi descobrir como implementá-los.
Solução: Criar um alias usando outro comando do Linux
Depois de fazer algumas pesquisas, encontrei o xsel como a melhor solução para mim usando X11 (você pode verificar isso em: Configurações > Sistema > Detalhes do sistema > Sistema de Janela
).
Primeiro, você precisa instalá-lo. Aqui está o comando para distribuições Ubuntu/Debian:
sudo apt install xsel
BashDepois, você precisa editar seu arquivo .bashrc
e adicionar as seguintes linhas ao final:
# Versão Linux do pbcopy e pbpaste do macOS
alias pbcopy='xsel --clipboard --input'
alias pbpaste='xsel --clipboard --output'
BashUma rápida explicação dos argumentos dos comandos:
--clipboard
é para fazer com que opere na seleção de CLIPBOARD. Como alternativa, você pode deixar de fora esse argumento para fazê-lo operar na seleção primária (então você não precisa copiar um conteúdo, apenas selecioná-lo);--input
e--output
são para habilitá-lo a ler ou gravar a entrada ou saída padrão na seleção. Isso é necessário se estivermos passando o conteúdo de um comando para outro.
Reinicie seu terminal ou execute o comando abaixo:
source ~/.bashrc
BashAgora você pode usar pbcopy e pbpaste em seu terminal, aqui está um exemplo:
kossmann@abracadabra:~$ pbpaste
Este texto foi copiado de um site
kossmann@abracadabra:~$ echo "Esta é uma saída do terminal" | pbcopy
kossmann@abracadabra:~$ pbpaste
Esta é uma saída do terminal
BashSolução alternativa para Wayland
Encontrei o projeto wl-clipboard que implementa dois utilitários de linha de comando para área de transferência do Wayland, wl-copy
e wl-paste
, que fazem a mesma coisa.
Quais são as razões para escolher xsel em vez de xclip?
Durante minha pesquisa, descobri que o xclip não fecha o STDOUT após ter lido do buffer do tmux, o que pode causar vários problemas (alguns exemplos aqui e aqui com o Sublime Merge).
Um fato curioso é que o xsel tem menos dependências do que o xclip:
kossmann@abracadabra:~$ apt-cache depends xsel
xsel
Depends: libc6
Depends: libx11-6
kossmann@abracadabra:~$ apt-cache depends xclip
xclip
Depends: libc6
Depends: libx11-6
Depends: libxmu6
Bash
Deixe um comentário