Como fazer o Vim ajustar o tema de cores automaticamente, de acordo com a hora do dia

O editor de textos Vim permite escolher entre uma dezena de esquemas de cores, ou temas, pre-instalados.
Com este pequeno código, introduzido no arquivo de configuração do Vim, você pode fazer com que ele varie automaticamente, em função da hora do dia.

Se você já tem alguma pequena experiência com conceitos básicos de programação (em qualquer linguagem) não vai ter dificuldades para alterar o script, para atender às suas necessidades.
Se quiser, pode apenas copiar e colar o código. Ele vai simplesmente funcionar, como se espera.

Script para trocar o esquema de cores no Vim

O script, que segue, é desenvolvido na linguagem de programação interna do Vim — o vimscript.
O código deve ser inserido ao final do arquivo de configurações ~/.vimrc e será executado toda vez em que o programa for iniciado.
Ao rodar o Vim, o script irá checar a hora e aplicar o esquema de cores apropriado.

Abra um terminal e edite o arquivo de configurações:


vim ~/.vimrc

Acrescente o código seguinte ao final do arquivo:

" Verificação progressiva do horário
" e ajuste do esquema de cores do Vim.
" A adição de 0 para garantir que 
" retorno da função seja numérico.

if strftime("%H") < 6 + 0
        colorscheme darkblue
        echo "selecionado tema DARKBLUE"
elseif strftime("%H") < 12 + 0
        colorscheme morning
        echo "selecionado tema MORNING"
elseif strftime("%H") < 18 + 0
        colorscheme shine
        echo "selecionado tema SHINE"
else
        colorscheme evening
        echo "selecionado tema EVENING"
endif

As linhas com o comando 'echo', infelizmente interromperão a inicialização do Vim, toda vez, para passar a mensagem entre aspas.
Inicialmente, elas são interessantes para ajudar a verificar se tudo está correndo bem e se o Vim está lendo adequadamente cada linha de código.
Depois, você pode remover, para deixar a execução do editor mais fluida e o .vimrc mais enxuto.

Finalmente, quando terminar de editar, basta sair do Vim e entrar de novo.

A melhor distro Linux para desenvolvedores

No universo das dezenas de distribuições importantes, algumas delas são melhores ou piores para determinados tipos de aplicação.
Algumas distribuições GNU/Linux são especificamente organizadas para realizar determinados tipos de tarefa ou a atender um nicho profissional.

E os desenvolvedores, como nicho ou como público, devem usar qual distribuição?
No universo GNU/Linux distribuições “de nicho” são chamadas branches ou blends — para trabalhar com multimídia, para clínicas médicas, para ambiente educacional etc.

Este é apenas mais um dos meus artigos opinativos, que evito fazer…
A melhor opinião continua sendo a sua.
Cabe a você julgar o que lhe serve, ou não, dentro deste texto.

Deixe um comentário, logo abaixo, se quiser.

ubuntu flavours sabores

Os programadores são um público à parte.
Os desenvolvedores Debian tendem a usar o Debian Sid, O mesmo ocorre com os desenvolvedores das outras distros.

Isto é ‘meio’ óbvio, eu sei… se você tem intenção de se tornar um(a) desenvolvedor(a) OpenSUSE, vai ter que usar a versão em desenvolvimento específica desta distro.

Quem tem intenção de desenvolver para internet das coisas (IoT), pode usar distribuições específicas para a plataforma desejada, como o Raspbian ou Ubuntu Core para a plataforma Raspberry.

Para todas os outros tipos de desenvolvedores(as), na prática, qualquer distro serve.

Red Hat, CentOS e Fedora

A Red Hat, tem investido bastante na comunidade de desenvolvedores e tem disponibilizado uma versão do Red Hat Enterprise Linux (RHEL) pra download em seu site — voltado justamente para este público.

Para saber mais, leia como se tornar desenvolvedor(a) Red Hat.

Debian e Ubuntu

As duas distribuições são muito amigáveis com os(as) desenvolvedores(as) — mesmo os(as) que não programam diretamente para a distro.
Você pode “pegar” a versão principal da distribuição e transformá-la em uma plataforma de desenvolvimento completa, apenas instalando aplicações de programação específicas, por exemplo.

O assunto também foi abordado em 3 editores de código para Debian e Ubuntu e no post Ferramentas de programação para Debian e Ubuntu

OpenSuse

O OpenSUSE tem uma longa história (e vários artigos neste site) na linha do tempo do Linux. É uma plataforma GNU/Linux séria e, se você se sente confortável com o seu look and feel, não há razão para deixar de considerá-la para projetos de desenvolvimento de aplicativos.
No post Instalar um servidor LAMP no OpenSUSE, pode ser dado o primeiro passo para o desenvolvimento de aplicações web, por exemplo.
Além disto, todas as IDEs que você encontra nas outras distribuições, vai encontrar aqui também.

Conclusão

Este post, como a maioria das minhas análises opinativas, vai terminar sem dar uma resposta pronta para o questionamento do título. Sorry.

O ambiente Linux, de maneira geral, é muito fértil e aconchegante para trabalhar com desenvolvimento de software.
Você pode escolher qualquer distro (me conte qual! 😉 ) e vai encontrar tudo o que precisa para tocar os seus projetos — até mesmo para plataformas proprietárias.
Tudo o que você precisa é encontrar e juntar as ferramentas certas.

Instale centenas de fontes do Google Fonts no Linux

O repositório de fontes Google Fonts disponibiliza gratuitamente quase 900 fontes, que podem ser usadas no GIMP, no seu editor de textos ou para personalizar todo o seu sistema, do jeito que você quiser.
Para ser exato, na última vez que olhei, havia 850 fontes disponíveis — o pacote tem 380 Mb, aproximadamente.

Se preferir, vá até o site e baixe apenas as que gostar.
Neste post vou mostrar como baixar todas de uma só vez.

O Google Fonts é um dos principais locais de hospedagem de fontes “opensource”, na web.
O repositório contém centenas de famílias de fontes disponíveis para download individual ou em um único pacote.

Já abordei este assunto, anteriormente, em um post voltado para o Ubuntu.
Neste texto, quero falar do assunto de maneira mais genérica, para que possa servir a qualquer distribuição GNU/Linux.
Me acompanhe.
google fonts

Prepare o sistema

O script original de instalação foi desenvolvido por Michalis Georgiou.
O que segue, abaixo, é uma reedição da versão modificada pelo Andrew do Webupd8.
Só alterei 2 coisas:

  1. Traduzi para português e
  2. removi a linha de instalação do wget, para tornar o script mais enxuto e universal. Assim ele pode ser executado em qualquer distro, sem precisar ser editado.

Como consequência, você terá que instalar o wget por conta própria, antes de rodar o script.

No Debian e no Ubuntu, use o apt:


sudo apt install wget

No Fedora, use o dnf:


sudo dnf install wget

O script de instalação

Se tiver interesse em dar uma olhada ou baixar o script original, vá até o site no Github: https://raw.githubusercontent.com/hotice/webupd8/master/install-google-fonts

Segue a minha edição:


# Original author: Michalis Georgiou 
# Modified by Andrew http://www.webupd8.org 
# Traduzido para português por Elias Praciano https://elias.praciano.com

_wgeturl="https://github.com/google/fonts/archive/master.tar.gz"
_gf="google-fonts"

# certifica que não há outro arquivo com o mesmo nome
rm -f $_gf.tar.gz

echo "Conectando ao servidor Github. Aguarde...."
wget $_wgeturl -O $_gf.tar.gz

echo "Extração do arquivo baixado..."
tar -xf $_gf.tar.gz

echo "Criação do diretório /usr/share/fonts/truetype/$_gf folder"
sudo mkdir -p /usr/share/fonts/truetype/$_gf

echo "Instalação das fontes .ttf em /usr/share/fonts/truetype/$_gf"
find $PWD/fonts-master/ -name "*.ttf" -exec sudo install -m644 {} /usr/share/fonts/truetype/google-fonts/ \; || return 1

echo "Atualização do cache de fontes..."
fc-cache -f > /dev/null

# Limpeza. Remove o arquivo .tar.gz. O usuário poderá ainda precisar da pasta
rm -f $_gf.tar.gz

echo "Pronto."

Lembre-se, o script depende do programa wget e vai dar erro, se este não estiver instalado.
Copie o código acima e cole dentro do seu editor de textos favorito.
Em seguida, salve o script e saia do editor.
Eu salvei o meu script com o nome gfinstall.sh
Para torná-lo executável, use o chmod:


chmod +x gfinstall.sh

Agora, rode o seu script:


./gfinstall.sh 

Conectando ao servidor Github. Aguarde....
--2018-03-22 10:57:37--  https://github.com/google/fonts/archive/master.tar.gz
Resolvendo github.com (github.com)... 192.30.253.112, 192.30.253.113
Conectando-se a github.com (github.com)|192.30.253.112|:443... conectado.
A requisição HTTP foi enviada, aguardando resposta... 302 Found
Localização: https://codeload.github.com/google/fonts/tar.gz/master [redirecionando]
--2018-03-22 10:57:38--  https://codeload.github.com/google/fonts/tar.gz/master
Resolvendo codeload.github.com (codeload.github.com)... 192.30.253.120, 192.30.253.121
Conectando-se a codeload.github.com (codeload.github.com)|192.30.253.120|:443... conectado.
A requisição HTTP foi enviada, aguardando resposta... 200 OK
Tamanho: não especificada [application/x-gzip]
Salvando em: “google-fonts.tar.gz”

google-fonts.tar.gz                                 [                                               <=>                                                    ]  33,27M  3,72MB/s               


2018-03-22 10:59:21 (3,76 MB/s) - “google-fonts.tar.gz” salvo [405548495]

Extração do arquivo baixado...
Criação do diretório /usr/share/fonts/truetype/google-fonts folder
[sudo] senha para justincase: 
Instalação das fontas .ttf em /usr/share/fonts/truetype/google-fonts
Atualização do cache de fontes...
Pronto.

Terminado o processo de download e instalação, você já pode se servir das novas fontes no sistema.
Experimente abrir as configurações de tema do GNOME ou o seu aplicativo favorito, para ver as novas possibilidades.
fontes google no GNOME

Compile programas em C de dentro do Vim

Programação comumente consiste das tarefas (cíclicas) de editar código, compilar, depurar etc.
Sair do editor de texto, apenas para realizar algumas destas tarefas é contraproducente.

… e um dos principais motivos de se usar o Vim é justamente obter o máximo de eficiência no trabalho.
Neste post, portanto, vou mostrar como compilar o seu código em C, sem precisar sair do editor.

Para a gente poder ir direto ao assunto, peguei o código do hello world da Wikipedia. Contudo, qualquer outro que tiver aí serve, claro.

Abra o editor Vim e digite o código:

#include 
main( )
{
        printf("hello, world\n");
}

Quando terminar, salve o arquivo:


:w hello.c

Agora compile, na linha de comando do próprio Vim:


:make hello

O Vim irá rodar o compilador padrão do seu sistema e exibir mensagens (de erro, de aviso etc.)
Se tudo correr bem, o hello deve estar presente no diretório atual, já como executável.

Leia mais sobre o editor Vim.

5 IDEs para programar no Linux

Os ambientes integrados de desenvolvimento (Integrated Development Environment> ou IDEs) são conjuntos de ferramentas que visam a oferecer ao desenvolvedor(a) tudo o que ele(ela) necessita para trabalhar: editor, corretor, debugger, compilador/interpretador etc.
O objetivo da IDE é proporcionar conforto, eficiência e desempenho a projetos de desenvolvimento de todos os tipos e tamanhos.

O Linux é muito rico em ferramentas para programação e é apontado como uma opção segura para profissionais sérios(as).
Neste post, vou me limitar a falar das opções disponíveis na interface de instalação Programas no Debian 10 “Buster” (testing edition).
Debian Ubuntu Instalar programas

Mesmo que a sua distro favorita seja outra, tenho certeza (quase) absoluta de que você vai encontrar todas estas opções lá também.
Para estar nesta lista, os itens precisam obedecer os seguintes requisitos:

  1. Precisa estar disponível no repositório oficial do Debian
  2. Precisa estar disponível na busca do painel de instalação Programas.
  3. Precisa ser uma ferramenta genérica, voltada para várias linguagens de programação e não apenas uma ou outra plataforma específica.

Use a sessão dos comentários, para me avisar (se não encontrou alguma coisa) ou para sugerir outras opções. 😉

Anjuta DevStudio

anjuta ide

Escrito, desde o inicio para o ambiente GNOME, o Anjuta DevStudio tem uma interface totalmente integrada.
Foi lançado em Dezembro/1999 e é, portanto, um projeto com aproximadamente 20 anos de estrada.
Entre seus principais atributos, o site oficial lista:

  1. Interface simplificada de usuário.
  2. Possui assistentes de projeto e modelos prontos.
  3. Tem suporte a C, C++, Java, JavaScript, Python e Vala.
  4. Integração total com o Glade, ferramenta de design de interfaces.
  5. GDB integrado, para depuração completa.
  6. DevHelp, como sistema de ajuda integrado e sensível ao contexto.

Code::Blocks

code blocks ide

A proposta do Code::Blocks é ser uma plataforma de desenvolvimento de código aberto, voltada para as linguagens C, C++ e Fortran.
Tem suporte a múltiplos compiladores, como o GCC, MSVC++, Clang Digital Mars etc.
O programa é especialmente projetado para ser estendido, através de plugins e receber variadas configurações.

Eclipse

eclipse ide linux

O projeto da IDE Eclipse já tem mais de 15 anos e começou dentro da IBM, em um projeto chamado VisualAge, voltado a construir ferramentas de desenvolvimento para os próprios projetos da empresa.
Atualmente, o Eclipse tem suporte a mais de 45 idiomas e a dezenas de linguagens de programação, como Ada, ABAP, C, C++, C#, COBOL, D, Fortran, Haskell, JavaScript, Julia, Lasso, Lua, NATURAL, Perl, PHP, Prolog, Python, R, Ruby (inclusive Ruby on Rails framework), Rust, Scala, Clojure, Groovy, Scheme, e Erlang.
O suporte a estas e outras linguagens é adicionado por meio de plugins.
Tal como o Code::Block, tem suporte a diferentes sistemas operacionais e, portanto, pode ser uma ótima opção para projetos multi-plataforma.

Geany

geany ide linux

O Geany é o queridinho entre desenvolvedores que apreciam o equilíbrio entre a quantidade de recursos e o bom desempenho de uma IDE leve.
O objetivo que guia este projeto é manter sempre este equilíbrio — que é alcançado, entre outras coisas, mantendo o mínimo de dependência de bibliotecas de terceiros.
Portanto, é indicado também para quem tem espaço limitado no computador de trabalho.
Tem suporte a C, Java, PHP, HTML, Python, Perl e Pascal.

Netbeans

Outra IDE desenvolvida por uma grande companhia, o NetBeans surgiu dos laboratórios da Sun Microsystems.
Inicialmente, o objetivo era prover um ambiente integrado aos desenvolvedores Java – dentro e fora da empresa.
Mas o projeto cresceu e adquiriu “vida própria”. Sobreviveu, até mesmo, a aquisição da Sun pela Oracle.
O projeto, hoje, tem suporte a dezenas de linguagens de programação (através de plugins) e pode ser usado até mesmo para desenvolver temas para WordPress.

Menções honrosas

Tive que conter o meu entusiasmo para não continuar escrevendo.
A lista ultrapassaria 10 itens, facilmente.
Apesar disso, faço questão de mencionar 3 IDEs e os motivos pelos quais ficaram fora desta lista.

  1. O Eric ficou de fora por ser um projeto exclusivamente voltado ao Python.
    Contudo, é um ambiente de programação fantástico e, se você é desenvolvedor Python, definitivamente recomendo que vá aos Programas conhecer esta opção.
  2. O Kdevelop também merece estar em qualquer lista de IDEs para a plataforma Linux e ele também pode ser encontrado no painel de instalação.
    Ficou de fora por ser voltado ao ambiente gráfico KDE — o que implicaria (para quem usa o GNOME, como ambiente padrão) em instalar uma enorme quantidade de bibliotecas para Qt e KDE.
  3. O Codelite, por pouco, não me fez aumentar a lista de 5 para 6…
    No Debian, ele pode ser instalado pela CLI, por que faz parte dos repositórios oficiais.
    O problema é que não consegui encontrá-lo no painel gráfico de instalação — e este seria o segundo pré-requisito para entrar na lista.
    Na sua distro, aí, é possível que ele esteja presente — dá uma olhada!
    Se não estiver e quiser conhecer o ambiente, use o apt (ou dnf):

    
    sudo apt install codelite
    

O exemplo do Codelite, aqui, mostra por que desenvolvedores não podem abrir mão da linha de comando, sob pena de deixar passar coisas importantes.
Se cometi algum erro ou alguma injustiça, por favor, me conte na sessão de comentários.