<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>IT Life &#187; ferramenta</title>
	<atom:link href="http://www.itlife.com.br/tag/ferramenta/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.itlife.com.br</link>
	<description>Ou seria ¬vida?</description>
	<lastBuildDate>Fri, 28 May 2010 03:42:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Porque usar vim</title>
		<link>http://www.itlife.com.br/2009/10/02/porque-usar-vim/</link>
		<comments>http://www.itlife.com.br/2009/10/02/porque-usar-vim/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 03:24:51 +0000</pubDate>
		<dc:creator>fotanus</dc:creator>
				<category><![CDATA[Computação]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[software livre]]></category>
		<category><![CDATA[Engenharia de software]]></category>
		<category><![CDATA[ferramenta]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.fotanus.com/?p=43</guid>
		<description><![CDATA[Existem muitos editores de código por aí. Muitos mesmo. Vim, no entanto, é um editor diferente. Muitas pessoas acham loucura usar vim para programar, assim como eu mesmo, no passado. Quem raios quer fazer as coisas diferentes do jeito que já se está acostumado a fazer? Outra pergunta: Será que vale a pena aprender coisas [...]]]></description>
			<content:encoded><![CDATA[<p>Existem muitos editores de código por aí. Muitos mesmo. <a href="http://www.vim.org/others.php">Vim</a>, no entanto, é um editor diferente. Muitas pessoas acham loucura usar vim para programar, assim como eu mesmo, no passado. Quem raios quer fazer as coisas diferentes do jeito que já se está acostumado a fazer? Outra pergunta: Será que vale a pena aprender coisas muito diferentes do que já se está acostumado? Essa segunda pergunta é decorrente da primeira, e talvez (provavelmente) você tenha se contradito ao responde-las mentalmente.</p>
<p>O fato é que vim é muito diferente dos editores de um editor de código padrão. E essa diferença faz com que muito do que tu saibas sobre outros editores de código não possa ser aproveitado. Porém, com o passar do tempo, você vai começar a achar Vim muito mais produtivo. Se você passou pela transição Windows-Linux, você sabe exatamente onde eu quero chegar. Caso não acredite nisso, peço que pense na seguinte pergunta: Porque tanta gente usa o vim para programar?</p>
<div id="attachment_44" class="wp-caption aligncenter" style="width: 310px"><img src="http://www.itlife.com.br/wp-content/uploads/2009/10/vim_3dlogo_wallpaper_www01_black-300x225.jpg" alt="Logo do vim" title="Logo do vim" width="300" height="225" class="size-medium wp-image-44" /><p class="wp-caption-text">Que a força esteja com você.</p></div>
<p>O primeiro contato com o vim já é traumatizante para muitos: Um editor que nem abre em uma janela, sendo chamado do terminal. Bom, como muita gente sabe, existe uma versão gráfica do vim, o gvim. Ele conta com todas as vantagens do vim, e utilizá-lo com ou sem essa interface gráfica não importa muito no fundo. Assim como também existe uma versão do vim estilo &#8220;bloco de notas&#8221;, do Windows, o evim (easy vim). Porém, utilizando essa última, você vai estar jogando fora um dos melhores programas que existem para editar código.</p>
<p>Se o primeiro contato já é um tanto quanto inusitado, o segundo é mais ainda: Ao tentar digitar algo, o texto não aparece na tela, e ainda pode ser ouvido alguns barulhos, como se o computador estivesse brigando com você. É exatamente essa característica que faz o vim ser tão poderoso: Você não escreve texto, você dá comandos. Como programador, você sabe que a maior parte do tempo não é dedicado a escrita propriamente do programa, e sim a edição do código já escrito. É exatamente nesse ponto que o vim facilita: Lidar com o que já existe. A produtividade alcançada utilizando o vim se dá por essa característica, juntamente com todas as vantagens que um editor de código padrão dá ao escrever um código novo.</p>
<p>Entre as características padrão do vim voltados a programação, temos principalmente:</p>
<li>coloração do código para facilitar o desenvolvimento em mais de 200 linguagens (e se não for o suficiente, você pode facilmente criar suas próprias) assim como de alguns erros coumuns como falta de parênteses.</li>
<li>folding, que é a capacidade de esconder trechos de código para poder visualizar o programa como um todo mais facilmente, por exemplo, transformar um &#8220;if&#8221; em apenas uma linha, e expandir esse if quando achar necessário.</li>
<li>tabs, que são utilizadas para ler mais de um arquivo com o mesmo vim aberto, exibindo os arquivos abertos em abas</li>
<li>framebuffers, que são espécies de tabs primitivas, onde basicamente você não consegue ver os arquivos que estão abertos, apenas circular entre eles.</li>
<li>identação automática, que é a capacidade do editor de identar automaticamente a próxima linha</li>
<li>Omnicomplete, que é um auto-completar extremamente versátil onde você pode montar sua lista de funções a serem completadas. Esse talvez seja o mais complexo de se explicar, mas com ajuda do programa ctags e alguns comandos, você terá as funções que quiser na lista para auto-completar, não importando se são do OpenGL, Qt, GTK, ou aquele projeto que ninguém nunca ouviu falar. Além disso, ele completa atributos e métodos de classes padrões ou das que você mesmo implementou, para a maioria das linguagens.</li>
<div id="attachment_57" class="wp-caption aligncenter" style="width: 551px"><img src="http://www.itlife.com.br/wp-content/uploads/2009/10/vim.png" alt="Vim com  tabs, omnicompletion, taglist plugin" title="Vim com  tabs, omnicompletion, taglist plugin" width="541" height="249" class="size-full wp-image-57" /><p class="wp-caption-text">Vim com  tabs, omnicompletion, taglist plugin</p></div>
<p>Só isso? Não! Vim pode ser facilmente expandido através de plugins. Como você imagina, existem milhares deles. Alguns muito poderosos, por exemplo, os snippets do <a href="http://macromates.com/">textMate</a> são imitados pelo plugin snippetsEMU. Como é tradição dos softwares livres, ele é altamente customizável, desde coisas macro como uma coluna do lado direito com a contagem de linhas e correção gramatical, até como a procura deve se comportar ou combinações de teclas para fazer ações específicas.</p>
<p>Em suma, além de ter características únicas que auxiliam na programação, vim ainda conta com muitas características (se não todas) dos editores de códigos mais utilizados. Como se não bastasse, é altamente customizável e cross-plataform. Só para deixar a vontade no ar: Digitando d, você ativa o comando delete. Se for digitado, por exemplo, dw, o comando utilizado é delete word, deletando a palavra onde o cursor se encontra. Se você quiser deletar as próximas 3 palavras, pode utilizar o comando d3w, delete 3 words. Características do modo de comando como esses comandos acima são muito difíceis de explicar em um texto que não seja diretamente um tutorial, e são exatamente deles que vem o poder do vim.</p>
<p>Se você ficou interessado em aprender a usar o vim e não sabe por onde começar, abra um terminal e digite
<pre>vimtutor</pre>
<p>Um tutorial de vim irá abrir no próprio vim, e você vai aprender a usá-lo utilizando ele mesmo. É uma idéia bastante interessante, e costuma ter ótimos resultados. Eu aprendi a usá-lo assim.</p>
<p>Fica a promessa: Vou fazer um post no blog sobre os plugins do vim que utilizo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.itlife.com.br/2009/10/02/porque-usar-vim/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
