sexta-feira, 18 de maio de 2012

Sublime Text 2: Meu (provavelmente) Último Editor

A tempos procurava um editor com recursos interessantes para aumentar a produtividade. Tomei conhecimento do TextMate do Mac e muito me interesssei. No ambiente de trabalho por ser Windows ( triste, eu sei ), buscava algo similar. Foi quando conheci o Intype (http://inotai.com/intype/) e encontrei na net boas almas que converteram os bundles do TextMate para o Intype.
No Intype, acabei utilizando todos os bundles que haviam disponíveis e foi uma experiencia satisfatória. A questão é que o intype se tornará pago cedo ou tarde, então outra alternativa precisava ser encontrada.



Eis que surge o Sublime Text 2 (http://www.sublimetext.com/). Com versões gratuita e paga, ele supera todos os editores que já trabalhei. Possui vários recursos interessantes, tais como:
  • Highlighting para várias linguagens como C, C++, C#, CSS, D, Erlang, HTML, Groovy, Haskell, HTML, Java, JavaScript, LaTeX, Lisp, Lua, Markdown, Matlab, OCaml, Perl, PHP, Python, R, Ruby, SQL, TCL, Textile e XML e mais para download 
  • Modo Full Screen (F11) com recurso Distraction Free (Shift + F11) 
  • Scroll com o minimap do código 
  • Auto save, jamais perca algo. 
  • Vários temas disponíveis, particularmente prefiro o Monokai 
  • Somente modo texto. Sem frescura. 
  • Seleção múltipla 
  • Busca incremental durante a digitação 
  • Seleção em coluna 
  • Mantém o case durante o replace 
  • Busca e substituição por expressão regular 
  • Auto complete 
  • Snippets e Pacotes que otimizam o tempo (e viciam) durante o uso. 
  • e muitos outros. 
Os Pacotes e Snippets, merecem uma descrição a parte. Primeiramente instale o Package Control seguindo esse tutorial. Com ele será possível instalar vários pacotes com os mais diversos recursos para melhorar sua produtividade. Alguns interessantes:
  • Alignment
  • SideBarEnhancements
  • JQuery
  • HTML5
  • e muitos outros disponíveis, basta dar uma olhada no Package Control. 
Estou utilizando estes aqui:


O mais interessantes do esquema do  Package Control, é que tudo é feito diretamente pelo Sublime, sem burocracia de download, instalação, etc. 

Os Snippets são os mais utilizados, na minha opinião. Da mesma forma que no TextMate, o Sublime completa trechos de códigos pré-configurados após a digitação de um termo (gatilho, vulgo tab trigger) e pressionar a tecla Tab. O mais interessante é que é possível editar e criar novos de uma maneira bem fácil. Basta ir pelo menu Tools >> New Snippet. O exemplo fornecido é muito óbvio, mas vamos a ele:


<snippet>

<content><![CDATA[

Hello, ${1:this} is a ${2:snippet}.

]]></content>

<!-- Optional: Set a tabTrigger to define how to trigger the snippet -->
<!-- <tabTrigger>hello</tabTrigger> -->
<!-- Optional: Set a scope to limit where the snippet will trigger -->
<!-- <scope>source.python</scope> -->

</snippet>


Todos os termos começados com $, seguido de um número são os parâmetros editáveis do bloco inserido pelo Sublime, descrito no content, possuindo navegação através do Tab, de acordo com a ordem numérica. O valor seguido dos ":"  são os valores padrões para cada parâmetro inserido. Descomente a linha do tabTrigger e digite o gatilho de sua preferência.

Além da possibilidade de criar novos snippets, é possivel importar  todos os bundles do TextMate com uma simples operação de ctrl + c , ctrc + v ( sim, simplesmente colar os arquivos) para a pasta do Sublime. Ele se encarrega de fazer funcionar. Única alteração é que quando copiar os arquivos .tmbundle para o Windows, eles virão como se fosse um pasta com essa extensão. Retire a extensão e salve essas pastas em:
C:\Users\<USUARIO DA MAQUINA>\AppData\Roaming\Sublime Text 2\Packages (Windows)
<USUARIO DA MAQUINA>/Biblioteca/Application Suport/Sublime Text 2/Packages (MAC)

Com isso, será disponibilizado os pacotes no canto inferior direito do Sublime.

Com uma interface amigável, vários recursos fantásticos e leve, o Sublime Text 2 tem se mostrado com o melhor editor que já trabalhei. Disponível para Windows, Linux e Mac, possibilita uma interface única para quem, como eu trabalha em ambientes diferentes.


Lista de Comandos – Mac
Navegar entre os arquivos: Command + P
Layout de 2 colunas: Command + Option + 2
Modo de distração livre: Command + Option + Shift + F
Find: Command + F
Find / Replace: Command + Option + F
Find / Where / Replace: Command + Shift + F
Indentação à esquerda: Command + [ ou Shift + Tab
Indentação à direita: Command + ] ou Tab
Comentário: Command + /
Multi-select: Command pressionado + Clique em várias linhas
Code Folding – Minimiza Bloco: Command + Option + [
Code Folding - Maximiza Bloco: Command + Option + ]
Code Folding – Minimiza Atributos: Command + K + Command + T
Code Folding – Maximiza Atributos: Command + K + Command + 0
Console: Ctrl + `
Menu: Command + Shift + P
Haiku: Ctrl + Option + Enter
Prefixr: Command + Ctrl + X
JSHint: Ctrl + J
JSMinifier: Ctrl + Option + M

Lista de Comandos – Windows/Linux
Navegar entre os arquivos: Ctrl + P
Layout de 2 colunas: Alt + Shift + 2
Modo de distração livre: Shift + F11
Find: Ctrl + F
Find / Replace: Ctrl + H
Find / Where / Replace: Ctrl + Shift + H
Indentação à esquerda: Ctrl + [
Indentação à direita: Ctrl + ]
Comentário: Ctrl + / ou Ctrl+;
Multi-select: Ctrl pressionado + Clique em várias linhas
Code Folding – Minimiza Bloco: Ctrl + Shift + [
Code Folding - Maximiza Bloco: Ctrl + Shift + ]
Code Folding – Minimiza Atributos: Ctrl + K + Ctrl + J
Code Folding – Maximiza Atributos: Ctrl + K + Ctrl + 1
Console: Ctrl + `
Menu: Ctrl + Shift + P
Haiku: Ctrl + Alt + Enter
Prefixr: Ctrl + Alt + X
JSHint: Ctrl + J
JSMinifier: Ctrl + Alt + M

Bônus
Deletar linha: Ctrl + Shift + K (Windows/Mac/Linux)
Duplicar linha – Mac – Command + Shift + D – Windows/Linux – Ctrl + Shift + D
Troca de linhas: Mac – Command + Ctrl + Seta (cima ou baixo) – Windows/Linux – Ctrl + Shift + Seta (cima ou baixo)

E mais
Jade – Syntax Highlight – https://github.com/miksago/jade-tmbundle
Stylus – Syntax Highlight – https://github.com/LearnBoost/stylus
JSHint – https://github.com/uipoet/sublime-jshint


Algumas configurações interessantes para se colocar no Preferences > Settings - User:

{
     "bold_folder_labels": true,
    "color_scheme": "Packages/Color Scheme - Default/Monokai.tmTheme",
    "font_face": "Monaco",
    "font_size": 13,
    "highlight_line": true,
    "ignored_packages":["Vintage"],
    "rulers": [72],
    "scroll_past_end": true,
    "shift_tab_unindent": false,
    "theme": "Soda Dark.sublime-theme",
    "trim_trailing_white_space_on_save": false,
    "trim_trailing_white_space_on_save": true,
}


Façam download e experimentem. Vale a pena.
Hasta!