Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the blank-slate domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /sites/danielkossmann.com/files/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the ultimate-addons-for-gutenberg domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /sites/danielkossmann.com/files/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the hustle domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /sites/danielkossmann.com/files/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wordpress-seo domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /sites/danielkossmann.com/files/wp-includes/functions.php on line 6114
Como usar pbcopy e pbpaste no Linux (Ubuntu ou outros) - Daniel Kossmann

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
Bash

Depois, 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'
Bash

Uma 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
Bash

Agora 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
Bash

Soluçã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


Comments

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *