<?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; vim</title>
	<atom:link href="http://www.itlife.com.br/tag/vim/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>Tutorial: Configurando o vim para programação</title>
		<link>http://www.itlife.com.br/2009/10/14/tutorial-configurando-o-vim-para-programacao/</link>
		<comments>http://www.itlife.com.br/2009/10/14/tutorial-configurando-o-vim-para-programacao/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 01:25:52 +0000</pubDate>
		<dc:creator>fotanus</dc:creator>
				<category><![CDATA[Computação]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Customização]]></category>
		<category><![CDATA[software livre]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://www.itlife.com.br/?p=76</guid>
		<description><![CDATA[Nesse tutorial, vou explicar (o mais brevemente possível) como transformar o vim em um poderoso editor de código, ensinando a configurar e usar algumas features do próprio vim. Introduzirei assunto por assunto, e então mostrarei onde eles podem ser aprofundados. Essa é apenas a pontinha do iceberg. Digo isso pois eu não domino o vim [...]]]></description>
			<content:encoded><![CDATA[<p>Nesse tutorial, vou explicar (o mais brevemente possível) como transformar o vim em um poderoso editor de código, ensinando a configurar e usar algumas features do próprio vim. Introduzirei assunto por assunto, e então mostrarei onde eles podem ser aprofundados. Essa é apenas a pontinha do iceberg. Digo isso pois eu não domino o vim completamente, sou apenas um usuário mediano. Tenha medo dos usuários avançados :)</p>
<p>Antes de ler esse tutorial, recomendo fortemente aprender a usar o básico do vim. Não tem porque configurar o vim como editor de código se não sabe usar ele como editor de texto! <a href="http://www.itlife.com.br/porque-usar-vim/">Motivação não falta</a>. Para começar, sugiro a lógica da bicicleta; você só aprende usando. Felizmente existe um tutorial do vim que utiliza ele mesmo para ver/editar. Para aprender a usar o básico do vim, sugiro usar o comando:</p>
<pre>vimtutor</pre>
<p>Somente depois de entender o básico você conseguirá utilizar (produtivamente) o vim como ferramenta de edição de código.</p>
<p><strong>Arquivos de configuração</strong></p>
<p>O vim, assim como todo bom programa de linux, funciona carregando configurações de dois diferentes lugares: Se disponível, carregará do seu usuário, se não, carregará do próprio sistema. Os arquivos de configuração do sistema podem ser encontrados no caminho &#8220;/usr/share/vim&#8221;. Os do usuário, podem ser encontrados em sua home, no caminho &#8220;~/.vim&#8221; e o arquivo &#8220;~/.vimrc&#8221;. Possivelmente o arquivo e pasta não existem no home do seu usuário, mas você pode cria-los normalmente. No caso do .vimrc, uma boa opção é copiar o padrão da sua distribuição na sua home, renomear o arquivo para .vimrc e começar a editá-lo, assim mantendo as configurações que estavam sendo usadas até o momento com o seu usuário.</p>
<p>Com dois possíveis caminhos a seguir, você vai acabar se perguntando qual dos dois configurar. Sugiro que você configure os arquivos de sua home, por vários motivos, como a portabilidade para qualquer computador (casa, trabalho e amigos), e a padronização da sua distribuição para novos usuários em computadores compartilhados, caso se aplique. Além disso, é mais provável que você tenha uma partição separada para o &#8220;/home&#8221; do que para o &#8220;/usr&#8221;. (dica fora de hora: caso não tenha, não seria uma má prática para futuras instalações, pois assim pode-se manter seus arquivos e configurações mesmo trocando o sistema :D).</p>
<p>O arquivo ~/.vimrc é praticamente um script carregado quando o vim é aberto. Nele, escreve-se qualquer comando que você poderia utilizar normalmente de dentro do vim, por exemplo &#8220;:set number&#8221;.  Vou dar algumas sugestões para preencher esse arquivo na próxima sessão deste tutorial.</p>
<p>A pasta ~/.vim contém, entre outros, plugins e documentação dos plugins. Ensinarei como utilizar plugins em outro post, em um futuro breve.</p>
<p><strong>Configurações básicas do .vimrc</strong></p>
<p>A maior parte das configurações do .vimrc consiste em setar variáveis ou atribuir algum valor a elas. Para comentar o seu .vimrc, isso é, escrever trechos que não serão interpretados como comandos de inicialização, deve ser utilizado aspas duplas. A partir da primeira ocorrência das aspas duplas até o final da linha será considerado comentário.</p>
<p>Segue então algumas configurações básicas retiradas do meu arquivo .vimrc. Os comentários explicam brevemente o que significa cada linha. Essas variáveis configuram muitas características do vim, por exemplo, encoding, compatibilidade, tamanho das tabs, verificação ortográfica, highlight de buscas, mouse, entre outros.</p>
<pre>" Sem categoria
set termencoding=utf8 "encoding do terminal
set nocompatible "Aumenta a independencia do vim com o vi
set history=50 "Numero de comandos mantidos no histórico do vim
set nospell "Desliga verificação ortográfica; você depois pode associar ela com .txt.
"set spell "liga a verificação ortográfica; eu não utilizo, somente em arquivos .txt

set title "mostra o nome do arquivo na barra de título do terminal
set showcmd "mostra os comandos digitados no rodapé
set showmode "mostra o modo do vim (comando/inserção/...) no rodapé
set ruler "mostra a linha e coluna do cursor no rodapé
set number "numera as linhas

set mouse=a "habilita o uso do mouse
filetype plugin on "habilita a carga de plugins especificos de certos tipos de arquivos, quando reconhecidos

"search
set ignorecase "ignora maiusculas/minusculas na busca
set smartcase "quando alguma letra da busca for maiúscula, não ignora maiúsculas/minúsculas
set incsearch "pesquisa enquanto a palavra está sendo digitada
set hlsearch "coloca highlight nas palavras encontradas

""" cores
syntax on "habilita highlight de sintaxe
set bg=dark "modifica as cores padrões; escolha dark para fundo preto, light para fundo branco (fundo do terminal)

"""" Tabulações
set shiftwidth=4 "numero de espaços para o autoindent, entre outros
set softtabstop=4 "numero de espaços quando precionado tab ou backspace
set tabstop=4 "numero de espaços de um tab
set autoindent "identação automática
set lcs=tab:»· "marca os tabs</pre>
<p>Mais informações sobre uma variável específica pode ser conferida utilizando a ajuda online do vim, com o comando</p>
<pre>:help VARIÁVEL</pre>
<div id="attachment_88" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.itlife.com.br/wp-content/uploads/2009/10/basics.png"><img src="http://www.itlife.com.br/wp-content/uploads/2009/10/basics-300x137.png" alt="Vim básico" title="Vim básico" width="300" height="137" class="size-medium wp-image-88" /></a><p class="wp-caption-text">Highlight de sintaxe e busca, numeração de linhas, tabs desenhadas...</p></div>
<p><strong>Tabs</strong></p>
<p>O Vim tem suporte nativo a tabs. Os comandos básicos para esse suporte são os seguintes: Para abrir uma tab, use &#8220;:tabnew&#8221;. Para ir para a próxima tab ou voltar, use &#8220;:tabnext&#8221; e &#8220;:tabprev&#8221;, respectivamente.</p>
<p>Aconselho adicionar essas linhas no seu .vimrc:</p>
<pre>"""" Tabs
set list "Lista as tabs de arquivos abertas
set showtabline=1 "Mostra a linha de tabs apenas se tiver 2 ou mais tabs abertas.
set tabpagemax=10 "Limita o numero máximo de tabs que podem ser abertos ao mesmo tempo</pre>
<p>Para saber mais sobre tabs, use o comando &#8220;:help tabs&#8221;</p>
<div id="attachment_103" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.itlife.com.br/wp-content/uploads/2009/10/tabs.png"><img src="http://www.itlife.com.br/wp-content/uploads/2009/10/tabs-300x137.png" alt="Tabs no vim" title="tabs" width="300" height="137" class="size-medium wp-image-103" /></a><p class="wp-caption-text">Tabs no vim</p></div>
<p><strong>Maps</strong></p>
<p>Uma característica avançada do vim é a capacidade de mapear teclas para funções específicas. Essa habilidade é conhecida também como &#8220;key binding&#8221;, porém no vim ela é referida tradicionalmente como &#8220;map&#8221;. Os maps são definidos diretamente no .vimrc, assim como as variáveis. Como exemplo, temos o seguinte map:</p>
<pre>map &lt;C-c&gt; :wq&lt;CR&gt;</pre>
<p>O map definido acima mapeia a combinação de teclas Ctrl+c para a sequencia de teclas &#8220;:wq.&#8221;, seguido de um enter. Assim, se você estiver no modo de comando, o vim irá salvar o texto e sair. Caso esteja no modo de inserção, ele Digitará o texto :wq e quebrará a linha. Como você pode notar, ele funciona simplesmente como se as teclas acabassem de ser digitadas, e o que acontece depende do modo que você está. Para isso, o comando map pode ser precedido por i, n ou v, para que o mapeamento funcione em apenas um modo (Insert, Normal e Visual, respectivamente). Ainda existem oturas restrições semelhantes, que podem ser conferidos na ajuda online do vim; esses são os básicos. Assim, para ter um resultado mais interessante, podemos fazer o seguinte mapeamento:</p>
<pre>nmap &lt;C-c&gt; :wq&lt;CR&gt;
imap &lt;C-c&gt; Nunca gostei de milho verde sem manteiga.</pre>
<p>Com um teste rápido, podemos ver que agora as mesmas teclas tem ações diferentes, dependendo do modo que você está.</p>
<p>Ainda existe uma opção muito útil relativa ao map, que é a &#8220;nore&#8221;. Normalmente, se forem definidos dois mapeamentos com as mesmas teclas de ativação, funcionando no mesmo modo, o segundo map &#8220;sobrecarrega&#8221; o primeiro. A opção &#8220;nore&#8221; serve para que uma vez que um map tenha sido definido, ele não seja remapeado. Por exemplo, podemos definir os mesmos maps acima do seguinte jeito:</p>
<pre>nnoremap &lt;C-c&gt; :wq&lt;CR&gt;
inoremap &lt;C-c&gt; Nunca gostei de milho verde sem manteiga</pre>
<p>É interessante definir seus maps como noremap.</p>
<p>Os mapeamentos das teclas especiais são bastante <span style="text-decoration: line-through;">estranhos</span> únicos. Um &lt;C-x&gt; Significa Ctrl+x, que é diferente de &lt;C-X&gt;. Ainda existem mapeamentos no estilo &lt;F5&gt;, &lt;UP&gt;, &lt;CR&gt; (carrige return, ou enter), &lt;ESC&gt;, &lt;Tab&gt;, entre outros. Essas teclas estão documentadas no &#8220;:help key-notation&#8221;</p>
<p>Mais informações sobre maps podem ser obtidas na ajuda online do vim, com o comando &#8220;:help map&#8221;</p>
<p><strong>Folding</strong></p>
<p>Folding é a capacidade de esconder partes de código que não interessam em um determinado momento, tornando o código mais visível. Muitos programadores não gostam, mas na minha opinião, essa opção é muito útil, pois permite ter uma visão geral do código em menos linhas.</p>
<p>O primeiro problema é definir quando deve haver um novo fold. Existem 6 métodos diferentes, e desses vou citar apenas 3: manual, indent e syntax. Na manual, você mesmo tem que definir onde criar os folds, o que é trabalhoso e pouco usado. As outras duas opções são syntax, onde os folds são criados automaticamente de acordo com a sintaxe da linguagem usada, ou o indent, onde os foldings são criados  automaticamente na identação. Teste os dois (ou outros que não citei) e use o que preferir.</p>
<p>Vamos então acrescentar mais algumas linhas no arquivo .vimrc para testar essa feature do vim (ou então usar elas como comando de dentro do vim):</p>
<pre>set foldmethod=syntax "seleciona o método de folding
set foldcolumn=2 "Mostra uma coluna auxiliar</pre>
<p>Para abrir ou fechar um fold, você pode usar os comandos &#8220;:zo&#8221; e &#8220;:zc&#8221; , respectivamente. Colocando em maiúsculo as letras &#8220;o&#8221; e &#8220;c&#8221; nos comandos anteriores, você abre/fecha um fold recursivamente. o comando &#8220;:za&#8221; altera o estado da fold atual, isso é, se estiver fechada abre, e se estiver aberta, fecha. Você pode usar esse comando recursivamente colocando a letra &#8220;a&#8221; em maiúscula. Ainda pode-se usar os comandos &#8220;:zR&#8221; e &#8220;:zM&#8221;, para abrir ou fechar todos os folds do arquivo, respectivamente.</p>
<p>O melhor jeito de se aprofundar em foldings é lendo a ajuda online do vim, utilizando o comando &#8220;:help folding&#8221;.</p>
<p><a href="http://www.itlife.com.br/wp-content/uploads/2009/10/folding.png"><img src="http://www.itlife.com.br/wp-content/uploads/2009/10/folding-300x137.png" alt="folding" title="folding" width="300" height="137" class="aligncenter size-medium wp-image-104" /></a></p>
<p><strong>Function/method Completions: completefunc e omnifunc</strong></p>
<p>Os completions só estão disponíveis no vim como padrão a partir da versão 7. Eles são os responsáveis pelo auto-completar, isso é, completar os métodos que uma determinada classe tem, por exemplo. Para vê-lo em ação, você pode fazer o seguinte teste: Primeiramente abra um arquivo com uma extensão de programação válida, por exemplo:</p>
<pre>vi teste.py</pre>
<p>Dentro do arquivo, digite o seguinte texto:</p>
<pre>a="teste"
a.</pre>
<p>Em Python, a primeira linha estancia uma string e a segunda linha está incompleta. O operador &#8220;.&#8221; é utilizado para acessar os métodos da classe string. Vamos testar o completion com essa string; em modo de inserção de texto, com o cursor logo após o &#8220;.&#8221;, aperte Ctrl+x, Ctrl+o. Deve aparecer uma janela com os métodos da string. Usando as setas para escolher, irá dividir a janela em 2, mostrando uma descrição do método na janela de cima. Ela não fecha automaticamente após sair.<br />
<a href="http://en.wikipedia.org/wiki/Don%27t_Panic_(Hitchhiker%27s_Guide_to_the_Galaxy)#Don.27t_Panic">Não entre em pânico</a>. Apesar do auto-completar parecer extremamente arcaico, você pode deixar ele muito mais usável do que imagina, utilizando maps e alguns comandos mais avançados. Um exemplo, você pode fechar automaticamente a janela com a descrição da função e mapear o auto-complete para Ctrl+C com as seguintes duas linhas no .vimrc:</p>
<pre>au CursorMovedI,InsertLeave * if pumvisible() == 0|silent! pclose|endif
inoremap</pre>
<p>Ficou bem melhor, certo? Mas na minha opinião não ficou bom o suficiente. Ainda falta muita coisa nesse auto-completar. Infelizmente essa parte vai ficar para o post sobre plugins, pois vamos precisar de ajuda externa! Para aprender mais sobre o auto-completar, sugiro a leitura do manual online do vim (se leu até agora, aposto que você já imaginava isso), com o comando &#8220;:help complete-functions&#8221;.</p>
<div id="attachment_105" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.itlife.com.br/wp-content/uploads/2009/10/omni.png"><img src="http://www.itlife.com.br/wp-content/uploads/2009/10/omni-300x137.png" alt="auto completar funções e métodos" title="omni" width="300" height="137" class="size-medium wp-image-105" /></a><p class="wp-caption-text">auto completar funções e métodos</p></div>
<p><strong>Considerações finais</strong></p>
<p>Esse tutorial foi escrito com fortes influências do google, enquanto eu aprendia. Gostaria de citar as fontes, porém faz muito que procurei essas informações, e algumas linhas de configuração, apesar de entender agora o que elas fazem, não fui eu quem escreveu, por exemplo a linha de fechar a janela de descrição do auto-complete automaticamente.</p>
<p>Caso tenha alguma sugestão ou dica, entre em contato!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.itlife.com.br/2009/10/14/tutorial-configurando-o-vim-para-programacao/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<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>
