Introdução

Apresentação

Por mais que a tecnologia avance, o ofício de escrever software ainda requer muito do talento humano. Brian Kernighan, co-autor de The C Programming Language, certa vez afirmou que “controlar complexidade é a essência da programação de computadores”. Se queremos produzir software que dê conta de modelar um mundo cada vez mais complexo, temos que estar preparados. Por isso, um bom programador deve procurar conhecer uma grande variedade de técnicas, métodos e ferramentas que tornem mais fácil manter o foco na essência da programação e entregar software com agilidade.

De todas as ferramentas que um programador necessita para executar seu trabalho de forma efetiva, o editor de texto é aquela com a qual ele precisa ter maior intimidade. Afinal, é o editor que faz a ponte entre as ideias do programador e o código que será executado pela máquina.

Andrew Hunt e David Thomas, no seu clássico livro The Pragmatic Programmer, defendem que um programador deve usar um único editor para todas as suas tarefas e usá-lo bem. Ainda segundo os autores, um bom editor deve possuir três características fundamentais: ser configurável, ser extensível e ser programável.

Existem inúmeros editores de texto que, de alguma maneira, se encaixam nesse perfil. Porém, enquanto alguns deles são rápidos, flexíveis e poderosos, ao mesmo tempo são relativamente difíceis de aprender a usar corretamente. Para tentar resolver esse problema, surgiram os IDEs especializados e baseados em interface gráfica, mas com a desvantagem de serem lentos, pesados e monolíticos.

O Sublime Text é um editor de texto que foi projetado para ser simples, rápido, flexível e fácil de usar. Não é à toa que vem ganhando mais adeptos a cada dia, já que muitas vezes os programadores, escritores e usuários em geral acabam cansados e frustrados por ter que lidar com IDEs pesados e lentos ou editores de texto sobrecarregados de recursos que nunca vão precisar.

No entanto, não é raro encontrar queixas sobre a carência de documentação oficial. Existem algumas iniciativas não-oficiais no sentido de prover documentação de referência abrangente mas, em grande parte das vezes, é necessário recorrer a fóruns de usuários ou sites de perguntas e respostas para encontrar informação detalhada.

Quando se trata de documentação em língua portuguesa, o cenário é ainda mais desafiador. Usuários intermediários e avançados preferem consultar as fontes em inglês, o que desestimula a produção de material em português para os iniciantes ou para aqueles que não possuem familiaridade com o inglês.

Diante desse panorama, este livro se propõe a fornecer um roteiro estruturado para usuários iniciantes e intermediários de modo que, ao final da leitura, sejam capazes de tirar proveito de todas as funcionalidades do Sublime Text.

A ideia de preparar este livro surgiu a partir da experiência de criar e manter o site Sublime Text Dicas. Como não poderia deixar de ser, partes do conteúdo aqui apresentado são versões revisadas, melhoradas e ampliadas de material publicado no site. No entanto, a maior porção do que você verá nas páginas a seguir é conteúdo pensado exclusivamente para o livro.

O livro está organizado de modo que a leitura possa ser iniciada a partir de qualquer capítulo, caso o leitor considere que já possui familiaridade com o assunto dos capítulos anteriores.

Falando em prática, certamente não é necessário dizer que o nível de domínio que se tem sobre uma ferramenta está diretamente ligado ao volume de uso que se faz dela. Então, não vamos perder mais tempo: bem-vindo à nossa jornada!

Boa leitura!

Rodrigo Amaral

Sobre o autor

Rodrigo Amaral é o fundador e principal mantenedor do site Sublime Text Dicas. Analista de TI por profissão e desenvolvedor de software por paixão, nas horas vagas dedica-se a colaborar com comunidades de tecnologia com foco em Python e software open source em geral. Sempre que possível, escreve sobre esses e outros assuntos em http://rodrigoamaral.net.

Isenção de responsabilidade

Durante a elaboração deste livro, o autor procurou fazer todos os esforços para certificar-se de que as informações aqui apresentadas fossem as mais abrangentes, completas e precisas quanto possível. No entanto, o conteúdo é fornecido “como está”, sem qualquer tipo de garantia explícita ou implícita. O autor, os canais de distribuição ou qualquer outra entidade envolvida não assumirão responsabilidade por dano ou prejuízo de qualquer espécie no que diz respeito às informações apresentadas neste livro.

Erratas e sugestões

Embora tenhamos tomado todos os cuidados para assegurar a precisão do conteúdo, enganos podem ocorrer. Se você encontrar algum erro neste livro, ficaríamos gratos se você puder reportá-lo a nós. Para comunicar erros ou enviar sugestões, acesse o formulário em http://sublimetextdicas.com.br/contato/, identifique-se e descreva o problema ou sugestão com o detalhamento que for necessário. Dessa forma, você pode nos ajudar a melhorar a qualidade das futuras edições deste material.

Histórico

Origens

O Sublime Text foi criado por Jon Skinner, um engenheiro de software australiano que trabalhava no Google, mas acabou deixando o emprego para se dedicar em tempo integral ao seu projeto de construir um editor de texto melhor do que os que existiam até então.

No final de 2005, Skinner começou a trabalhar no protótipo do que viria a se tornar o Sublime Text. A ideia inicial era criar um editor de texto com aceleração 3D, no qual fosse possível aproximar, afastar ou deslocar a visualização do texto. O resultado não o agradou muito. O texto ficava ilegível rapidamente ao dar zoom. No entanto, o experimento foi útil para que ele pudesse ter algumas ideias que foram o embrião do Sublime Text.

Skinner acreditava que um editor de texto deveria focar principalmente no texto, não em múltiplas barras de ferramentas ou caixas de diálogo. A interface deveria ser discreta e minimalista, de modo a aproveitar ao máximo os pixels disponíveis na tela para mostrar o conteúdo dos arquivos.

Evolução

No final de 2007, o autor publicou as primeiras imagens da interface do Sublime Text, que já era bastante parecida com a que temos hoje. A primeira versão pública (versão 1.0) foi lançada no início de 2008 e foi sendo incrementada por novos releases que introduziram boa parte das funcionalidades que conhecemos.

Em janeiro de 2011 foi lançado o Sublime Text 2.0 em versão alpha. Esta versão foi aperfeiçoada ao longo dos meses, passando de alpha para beta até finalmente chegar à versão final em junho de 2012.

A versão beta do Sublime Text 3 foi lançada em janeiro de 2013 e é a versão corrente até a data em que este texto foi escrito [1].

Principais características

Como já vimos, o criador do Sublime Text estava determinado a construir um editor de texto melhor do que tudo o que havia disponível até o momento. Essa visão consistia em fazer com que o editor tivesse o mínimo de elementos que causassem distração ao usuário, enquanto mantinha a interface intuitiva, funcional e rápida.

Essas premissas deram origem a uma série de características e funcionalidades que rapidamente colocaram o Sublime Text entre os editores de texto mais populares entre os programadores [2]:

Goto Anything

Não é exagero dizer que comando Goto Anything talvez seja um dos principais responsáveis pelo sucesso do Sublime Text. Além de ser uma maneira prática de navegar entre os arquivos, o desempenho do comando é surpreendente, fazendo com que a transição entre os arquivos pareça instantânea.

Seleção Múltipla

A capacidade de selecionar trechos de texto de forma flexível é um dos principais recursos do Sublime Text. A seleção múltipla nos permite manipular texto usando mais de um cursor e mais de uma região selecionada. O uso desse recurso pode nos poupar bastante tempo, eliminando tarefas repetitivas com apenas algumas teclas de atalho.

Plugins

Por trás do seu visual simples, a capacidade de estender as funcionalidades do editor por meio de plugins é a fonte dos superpoderes do Sublime Text. A prova disso é a existência de um vasto ecossistema de plugins e pacotes de terceiros que pode ser facilmente acessado por meio de comandos do próprio editor. Além disso, é muito fácil para qualquer pessoa criar seu próprio plugin. Os plugins do Sublime Text são codificados na linguagem de programação Python [3], conhecida por ser poderosa, intuitiva e fácil de aprender.

Minimap

Quem nunca ficou meio perdido ao editar um arquivo muito longo? Para amenizar esse problema o Sublime Text traz a opção de mostrar um mini-mapa do texto do arquivo aberto. O mini-mapa facilita localizar um trecho do arquivo só de olhar para o “jeitão” dele.

Opções de layout

Existem muitas situações nas quais é útil podermos enxergar simultaneamente o conteúdo de dois ou mais arquivos. Editar um arquivo HTML e sua folha de estilos CSS correspondente ou o código-fonte de um programa e seu código de testes unitários são alguns exemplos. O Sublime Text permite modificar o layout da janela de edição para exibir até quatro arquivos simultâneos, dispostos em linhas, colunas ou em grade.

Personalização

Quem vê o Sublime Text pela primeira vez pode até ficar em dúvida se ele é mesmo tudo isso que prometem. Afinal, como pode um editor com uma interface tão simples ser capaz de substituir um IDE de programação completo, como dizem por aí? O segredo está na capacidade de personalizar o Sublime Text em praticamente qualquer detalhe que se possa imaginar. Teclas de atalho, menus, plugins, autocomplementos de texto, macros, temas visuais, esquemas de cores, realce de sintaxe… Tudo isso pode ser personalizado por meio da simples edição de arquivos de configuração em texto puro.

Command Palette

O recurso Command Palette funciona de forma similar ao Goto Anything, com a diferença de que ele permite, ao invés de arquivos, pesquisar os próprios comandos do Sublime Text. Por meio de um simples atalho de teclado é possível encontrar praticamente qualquer funcionalidade, sem precisar navegar pelos menus ou decorar várias teclas de atalho.

Desempenho

Mesmo com todos esses recursos, ao contrário do que se poderia imaginar, o Sublime Text apresenta um desempenho impressionante. A resposta a qualquer comando executado acontece instantaneamente, em transições suaves. A medida que usuário vai ficando mais experiente e ágil na utilização de um editor de texto ou IDE, esse é um detalhe que faz toda a diferença.

Multiplataforma

Com versões para Linux, OS X e Windows, o Sublime Text consegue proporcionar uma experiência idêntica nas três plataformas, mantendo o padrão visual uniforme e um desempenho excelente.

Instalação

Agora que você já sabe o que o Sublime Text tem a oferecer, está na hora de colocar a mão na massa!

Neste livro, vamos usar o Sublime Text 3 que, apesar de ainda ser uma versão beta, já se encontra bastante madura e estável. Os instaladores para Windows, Mac OS X e Ubuntu estão disponíveis para download no site oficial http://sublimetext.com/3 .

Nota

O Sublime Text pode ser baixado e avaliado gratuitamente. No entanto, se você quiser continuar a utilizá-lo, deverá comprar um licença. As licenças são por usuário, e não por máquina. Isso significa que você pode desfrutar do Sublime Text em quantos computadores ou sistemas operacionais quiser com apenas uma licença.

Uma vez na página de download, escolha o instalador de acordo com o sistema operacional do seu computador e baixe o arquivo correspondente. Em seguida, basta executar o pacote de instalação de acordo com os procedimentos normais para cada sistema operacional.

Windows

Escolha a versão de 32 ou 64 bit, de acordo com sua versão do Windows. Na dúvida, faça o download da versão para 32 bit. A instalação segue o processo de tradicional para programas Windows (next-next-finish).

Além do instalador convencional, também está disponível uma versão portátil do Sublime Text. A versão portátil pode ser útil para se ter em um drive USB (pen drive) caso você queira usar suas configurações personalizadas do Sublime Text em um computador diferente ou no qual você não tenha permissão de instalar programas.

OS X

Baixe e abra o arquivo .dmg. Em seguida, arraste o pacote do Sublime Text para dentro da pasta Aplicativos (Applications).

Linux

Para instalar o Sublime Text no Ubuntu, baixe o arquivo .deb e instale o pacote normalmente. Se você usa alguma distribuição Linux que não tem suporte à instalação de pacotes .deb, primeiro baixe o arquivo tarball (tar.gz) disponível na página e descompacte em uma pasta apropriada.

Conhecendo a interface

Depois de completar a instalação, é hora de conhecer o jeitão do Sublime Text. Quando dizemos que a interface é minimalista, estamos falando sério. Ao iniciar o Sublime Text pela primeira vez, você verá algo parecido com a Figura 1.

Tela padrão do |ST|

Fig. 1 Tela padrão do Sublime Text

Na parte de cima da tela está o menu principal. Aconselho que você navegue um pouco por ele, para se familiarizar com as opções e ter uma ideia geral do que o Sublime Text pode fazer (ou, no mínimo, ficar curioso). No entanto, não fique preocupado se não estiver entendendo algumas opções. Nós vamos conhecer todas elas ao longo dos próximos capítulos.

O centro da tela é ocupado pela área de edição. Ao contrário da maioria dos editores de texto desktop, o esquema de cores padrão do Sublime Text usa uma cor escura como plano de fundo e cores vibrantes para o texto. Essa abordagem favorece o contraste e, em consequência, a legibilidade. Todavia, nada impede que você troque o esquema de cores para qualquer outro entre os vários que vêm com o Sublime, ou mesmo que instale um novo esquema dentre os diversos disponíveis na internet.

Na parte inferior fica a barra de status. Nela você encontra informações como a linha e coluna na qual o cursor está posicionado, o tamanho da tabulação, a sintaxe do arquivo que está sendo editado (o padrão é Plain Text, texto puro) entre outras que podem ser acrescentadas por meio da instalação de pacotes e plugins.

Experimente digitar alguma coisa na área de edição. Você verá que surge uma aba (tab) no topo, cujo rótulo (label) são os primeiros caracteres do texto digitado. Isso facilita a identificação do conteúdo da aba enquanto o arquivo não for salvo, quando então o rótulo passará a ter o nome do arquivo gravado.