Como ativar o mouse no editor Vim

Ativar e usar as funções básicas de um mouse, dentro do editor Vim é bastante fácil.
É possível ativar o dispositivo para a sessão atual ou incluir o parâmetro de ativação no arquivo de configuração, para mantê-lo ativo permanentemente.

Ok. Usar o mouse no editor Vim pode parecer um contrassenso – e realmente é.
O editor foi concebido por pessoas que se deram conta de que usar o mouse durante o trabalho de escrever é extremamente contraproducente.

Mas, se você precisa, é muito fácil ajeitar isto.
Dentro do Vim, tecle ESC para ir para a linha de comando e rode


:mouse=a

Para desativar o dispositivo, dentro do Vim, execute:


:mouse=""

Para desativar o mouse apenas no modo comando, use ‘-=c’:


:mouse-=c

Foi difícil?! 😉
Para quem usa o GVim algumas outras opções de ajuste do mouse.

Divirta-se com o cowsay

O cowsay é um pequeno aplicativo escrito em Perl, que pode ser usado para espairecer e refrescar os pensamentos, no Linux.
Resumidamente, é uma vaca configurável e falante.

O aplicativo exibe uma vaquinha em ASCII (veja a imagem abaixo), com uma mensagem dentro de um balão.
cowsay ascii art

Um ótimo lugar para usar o programa é de dentro de seus script, toda vez que precisar se comunicar com o seu usuário.

A vaquinha pode ser uma maneira simpática de avisar que “algo deu errado” ou anunciar o sucesso de alguma operação.
Você é que sabe.

Instale o cowsay a partir do repositório oficial da sua distro. No Debian e Ubuntu, use o apt:


sudo apt install cowsay

Execute o programa, fornecendo uma pequena linha de texto:


cowsay "O site elias.praciano.com tem vários artigos sobre Linux"

/ O site elias.praciano.com tem vários \
\ artigos sobre Linux                  /
 --------------------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

Fácil, não é?

Experimente especificar a largura (width, em inglês) máxima de cada linha, dentro do balão:


cowsay -W10 "___elias .praciano .com___"

 ___________
/ ___elias  \
| .praciano |
\ .com___   /
 -----------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

Use a vaquinha no modo Borg (repare nos olhinhos…) com a opção -b:


cowsay -W35 -b "WEBSITE: https://elias.praciano.com TWITTER: https://twitter.com/coisasdogeek"

 __________________________________
/ WEBSITE:                         \
| https://elias.praciano.com       |
| TWITTER:                         |
\ https://twitter.com/coisasdogeek /
 ----------------------------------
        \   ^__^
         \  (==)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

Eu não curto maus tratos aos animais… mas existe o modo da vaquinha morta (dead cow), com a opção -d:


cowsay -W15 -d "Eu estou parecendo o cachorro do Elias, que dorme com a língua de fora... "

 _____________
/ Eu estou    \
| parecendo o |
| cachorro do |
| Elias, que  |
| dorme com a |
| língua de   |
\ fora...     /
 -------------
        \   ^__^
         \  (xx)\_______
            (__)\       )\/\
             U  ||----w |
                ||     ||

Experimente usar a opção -g:


cowsay -W15 -g "A opção -g invoca o modo greedy, ou seja, modo ganancioso."

 _______________
/ A opção -g    \
| invoca o modo |
| greedy, ou    |
| seja, modo    |
\ ganancioso.   /
 ---------------
        \   ^__^
         \  ($$)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

Segue o modo paranoia, com -p:


cowsay -W15 -p "Modo «paranoia»"

 ____________
/ Modo       \
\ «paranoia» /
 ------------
        \   ^__^
         \  (@@)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

Vaquinha chapada com -s:


cowsay -s "Modo chapada ou «stoned»"

 __________________________
< Modo chapada ou «stoned» >
 --------------------------
        \   ^__^
         \  (**)\_______
            (__)\       )\/\
             U  ||----w |
                ||     ||

Vaquinha cansada, com -t:


cowsay -t "Modo cansada ou «tired»"

 _________________________
< Modo cansada ou «tired» >
 -------------------------
        \   ^__^
         \  (--)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

Experimente ainda estas outras opções:

  • -y — Vaca rejuvenescida (youthful)
  • -w — Oposto de cansada

Se quiser ajustar por conta própria os olhos da vaca, use a opção -e:


cowsay -e "↓↓" "meus olhinhos"

 _______________
< meus olhinhos >
 ---------------
        \   ^__^
         \  (↓↓)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

Altere a aparência da língua da vaca com -T:


cowsay -T "YY" "minha pequena linguinha"

 _________________________
< minha pequena linguinha >
 -------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
             YY ||----w |
                ||     ||

Você quer outros animais?

Se você não gosta de vaquinhas simpáticas, experimente um dos outros vários animais disponíveis pelo programa.
Com a opção -l, é possível listar todos:


cowsay -l

Cow files in /usr/share/cowsay/cows:
apt bud-frogs bunny calvin cheese cock cower daemon default dragon
dragon-and-cow duck elephant elephant-in-snake eyes flaming-sheep
ghostbusters gnu hellokitty kiss koala kosh luke-koala mech-and-cow milk
moofasa moose pony pony-smaller ren sheep skeleton snowman stegosaurus
stimpy suse three-eyes turkey turtle tux unipony unipony-smaller vader
vader-koala www

Como são mais de 40 opções, vou deixar para você a surpresa ao explorá-las, uma a uma.

Por fim, você pode direcionar o output de comandos para utilitário com um pipe:


uptime | cowsay -f daemon

 _____________________________________
/  16:53:14 up 5 days, 22:25, 1 user, \
\ load average: 0,25, 0,43, 0,58      /
 -------------------------------------
   \         ,        ,
    \       /(        )`
     \      \ \___   / |
            /- _  `-/  '
           (/\/ \ \   /\
           / /   | `    \
           O O   ) /    |
           `-^--'`<     '
          (_.)  _  )   /
           `.___/`    /
             `-----' /
<----.     __ / __   \
<----|====O)))==) \) /====
<----'    `--' `.__,' \
             |        |
              \       /
        ______( (_  / \______
      ,'  ,-----'   |        \
      `--{__________)        \/

Obtenha frases aleatórias e divertidas no terminal do Linux

Se hackers gostam de usar a linha de comando (CLI), consistindo de um terminal com fundo escuro, também gostam de se divertir durante o uso.
O ‘fortune’ é uma das longas tradições do universo UNIX. Se você ainda não a conhece, ainda tá em tempo.

Consiste em um pequeno programa, acompanhado de um banco de dados de frases e sentenças.
As frases podem ser engraçadas ou podem exibir curtas dicas de uso do sistema operacional.
Estão disponíveis em vários idiomas, incluindo o português.
Instale o fortune, usando o seu gestor de pacotes favorito (yum, dnf, apt etc).
No Debian/Ubuntu, use o apt:


sudo apt install fortune

Uma vez instalado, já pode ser executado no terminal:


fortune

    "The glory of creation is in its infinite diversity."
    "And in the way our differences combine to create meaning and beauty."
        -- Dr. Miranda Jones and Spock, "Is There in Truth No Beauty?",
           stardate 5630.8

Acima, diálogo retirado da série Star Trek (1968).
Star Trek

Como controlar ou escolher as frases do fortune

Se quiser ver mais frases relacionadas ou contendo a string “Star Trek”, use a opção -m:


fortune -m "Star Trek"

Prefere o Doctor Who!?


fortune -m "Doctor Who"

Fique atento para a caixa (maiúsculas/minúsculas) das palavras procuradas. O Fortune é sensível à caixa.

Como obter frases ofensivas no terminal

As frases ofensivas são parte da tradição e da brincadeira.

Aviso: Por favor, só ligue esta opção se você estiver querendo, do fundo do seu coração, ser ofendido(a).

Na maioria das distribuições, contudo, o banco de dados de frases ofensivas não é instalado.
É necessário fazer a instalação manual, se quiser:


sudo apt install fortunes-off

Agora é só executar, com a opção ‘-o’:


fortune -o

Obtenha dicas de uso do Linux

Para ver frases mais construtivas (com dicas de uso do Debian, por exemplo), instale o pacote Debian Hints:


sudo apt install fortunes-debian-hints

E rode o programa:


fortune debian

ou


fortune debian-hints

Como obter a versão em português

Para ver frases selecionadas em português, é necessário instalar o arquivo fortunes-br:


sudo apt install fortunes-br

e rodar o programa assim:


fortune brasil

Como configurar para mostrar uma “fortuna” toda vez que abre um terminal

Este é o jeito que eu gosto de usar o fortune: com uma frase a cada vez que abro um terminal.
fortune quincas borba
Para isto, inclua o comando ‘fortune’, da maneira que achar melhor a sua execução, ao final do arquivo ~/.bashrc.

Como obter o efeito Matrix no seu terminal

No filme (agora, um clássico) de aventura e ficção científica, Matrix, lançado no fim dos anos 90 e dirigido pelas irmãs Wachowski, em alguns momentos, a realidade virtual ou o código da “matriz” é representado por uma chuva de caracteres em verde.
A cor verde é uma alusão aos antigos monitores em fósforo verde, muito populares entre as décadas de 60 a 80.

Se você não acha divertido trabalhar na linha de comando (CLI), provavelmente está fazendo isso errado.

Use o gerenciador de pacotes da sua distro para instalar o cmatrix.
No Debian/Ubuntu, use o apt:


sudo apt install cmatrix

Uma vez instalado, é possível rodar o programa apenas digitando ‘cmatrix’ dentro do terminal.
Mas o melhor é fazer uso de algumas opções que ele oferece na linha de comando.
Eu gosto de usar assim:


cmatrix -nu 6 -C blue

Deixa eu explicar o comando:

  • A opção ‘-n’, desliga as letras em negrito, o que confere um visual mais suave e homogêneo (em minha humilde opinião).
  • ‘-u 6’ ajusta a velocidade da cascata de letras para 6. Você pode usar outro valor, de 0 a 10.
  • ‘-C blue’ ajusta a cor principal para azul.

cmatrix matrix linux

Use o meu exemplo para obter diferentes efeitos.

Comandos do cmatrix

Durante a execução do programa, é possível alterar o seu comportamento, pressionando as seguintes teclas:

  • a, para ligar/desligar a rolagem assíncrona.
  • b, B ou n, para alternar o efeito negrito sobre as letras.
  • 0 a 9, para alterar a velocidade da rolagem.
  • q, para sair.

Segue a relação de cores possíveis, com a tecla de comando de cada uma:

  1. @ green (verde), é a cor padrão.
  2. ! red (vermelho).
  3. $ blue (azul).
  4. & white (branco).
  5. # yellow (amarelo).
  6. ^ cyan (ciano).
  7. % magenta.
  8. ) black (preto).

Experimente ler a ajuda do programa, para obter mais informações sobre sua execução:


cmatrix -h

Por fim, fica o aviso de que o cmatrix consome bastante recursos do sistema. Portanto, não se assuste com este “detalhe”.

Como copiar arquivos na linha de comando com exibição do progresso

É possível exibir o progresso da transferência dos dados, à medida em que são copiados no Linux/Unix com o uso do comando de cópia, cp?

A resposta curta é não.
Porém, através de um hack (que vou ensinar neste artigo), é possível fazer cópias de todos os arquivos de um diretório (recursivamente, se você quiser) para outro, com a exibição do progresso da cópia de cada arquivo.

rsync - exemplo de uso - captura de tela
Com o uso do alias, o cp se comporta como o comando rsync.

Se estivermos falando de arquivos muito grandes (áudio, vídeo etc.) será possível acompanhar melhor o processo de cópia na CLI (linha de comando).
Vamos ver como realizar o procedimento com o uso destas 2 ferramentas padrão em qualquer distro GNU/Linux: alias e rsync.
O comando rsync serve para fazer cópias entre diretórios locais e remotos.
Com ele é possível obter um retorno sobre a taxa de progresso da cópia de dados.
Por exemplo, para copiar todos os arquivos da pasta Documentos para /media/justincase/pendrive, use o comando assim:


rsync -ahu --progress Documentos/* /media/justincase/pendrive/

Veja o que o comando faz:

  • -a — estabelece que a transferência ocorra no nível de arquivo.
  • -hhuman readable, indica que o retorno deve ocorrer em Kb/Mb, para tornar a leitura mais fácil.
  • -uupdate, atualiza apenas os arquivos com entradas mais novas, para agilizar o processo. O rsync já faz a cópia incremental, por padrão — ou seja, verifica antes se os arquivos já existem no destino e só copia se houve atualizações.
  • --progress — finalmente, esta é a opção de exibição do progresso da execução da transferência individual da cópia.

Para adicionar recursividade, use a opção ‘-r’:


rsync -ahur --progress Documentos/* /media/justincase/pendrive/

Fique à vontade para alterar os itens da linha de comando, para que ela se encaixe às suas necessidades.
Por fim, altere a função do comando cp, no seu sistema, com o uso do alias:


alias cp="rsync -ahu --progress"

Se preferir que a função de recursividade fique em um comando separado, crie um novo alias:


alias cpr="rsync -ahur --progress"

Veja um exemplo de funcionamento do “novo” cp:


cp ~/Documentos/Documento\ digitalizado* /media/justincase/b655b449-21c6-42ca-b274-5adf9980a843/Documentos/

sending incremental file list
Documento digitalizado-1.jpg
        953.79K 100%   48.80MB/s    0:00:00 (xfr#1, to-chk=11/12)
Documento digitalizado-1.jpg.zip
        917.61K 100%   15.63MB/s    0:00:00 (xfr#2, to-chk=10/12)
Documento digitalizado-1.png
          7.40M 100%   43.27MB/s    0:00:00 (xfr#3, to-chk=9/12)
Documento digitalizado-2.jpg
        407.14K 100%    2.03MB/s    0:00:00 (xfr#4, to-chk=8/12)
Documento digitalizado-2.jpg.zip
        354.94K 100%    1.74MB/s    0:00:00 (xfr#5, to-chk=7/12)
Documento digitalizado-2.png
        483.23K 100%    2.06MB/s    0:00:00 (xfr#6, to-chk=6/12)
Documento digitalizado-3.jpg
        318.37K 100%    1.22MB/s    0:00:00 (xfr#7, to-chk=5/12)
Documento digitalizado-3.jpg.zip
        309.96K 100%    1.17MB/s    0:00:00 (xfr#8, to-chk=4/12)
Documento digitalizado-3.png
        482.62K 100%    1.64MB/s    0:00:00 (xfr#9, to-chk=3/12)
Documento digitalizado-pgto-helio20140513.pdf
        112.15K 100%  359.08kB/s    0:00:00 (xfr#10, to-chk=2/12)
Documento digitalizado.jpg
         30.82K 100%   96.76kB/s    0:00:00 (xfr#11, to-chk=1/12)
Documento digitalizado.png
          7.40M 100%   16.79MB/s    0:00:00 (xfr#12, to-chk=0/12)

Segue um exemplo de uma variação do uso do rsync, que inclui a opção ‘–info=progress2’:


rsync -ah --info=progress2 ~/Documentos/Documento\ digitalizado* /media/justincase/b655b449-21c6-42ca-b274-5adf9980a843/Documentos/

         19.16M 100%  192.03MB/s    0:00:00 (xfr#12, to-chk=0/12)

Neste caso, os dados sobre o progresso se referem à tarefa toda e não apenas a cada arquivo individualmente.
Você pode criar um alias para este modo de operação, se quiser.