<?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>cleiver.com &#187; vim</title>
	<atom:link href="http://blog.cleiver.com/tag/vim/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.cleiver.com</link>
	<description>blog</description>
	<lastBuildDate>Wed, 18 Nov 2009 00:37:35 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Dicas de Vim</title>
		<link>http://blog.cleiver.com/2008/08/22/dicas-de-vim/</link>
		<comments>http://blog.cleiver.com/2008/08/22/dicas-de-vim/#comments</comments>
		<pubDate>Fri, 22 Aug 2008 21:56:42 +0000</pubDate>
		<dc:creator>Cleiver</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[dicas]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://blog.cleiver.com/?p=38</guid>
		<description><![CDATA[Desde que comecei o curso de linux, to meio viciado nesse editor. Antigamente só sabia entrar e sair dele, mas agora que peguei o jeito, não custa nada compartilhar, muita gente ainda pode se enrolar um bocado. ;P
Para copiar e colar linhas no vi, basta estar no modo de comando (pressione ESC caso esteja em [...]]]></description>
			<content:encoded><![CDATA[<p>Desde que comecei o curso de linux, to meio viciado nesse editor. Antigamente só sabia entrar e sair dele, mas agora que peguei o jeito, não custa nada compartilhar, muita gente ainda pode se enrolar um bocado. ;P</p>
<p>Para copiar e colar linhas no vi, basta estar no modo de comando (pressione ESC caso esteja em dúvida) e ir para a linha desejada:</p>
<p><strong>yy </strong>= Copia toda a linha<br />
<strong>3yy </strong>= Copia 3 linhas a partir do cursor<br />
<strong>p</strong> = Cola a linha copiada<br />
<strong>5p </strong>= Cola cinco vezes a linha copiada<br />
<strong>dd </strong>= Recorta a linha<br />
<strong>4dd </strong>= Recorta quatro linhas a partir do cursor</p>
<p>Caso você deseje copiar apenas uma palavra ou trecho da linha, basta entrar no modo visual. Para isso, vá para o primeiro caractere do trecho desejado e pressione a tecla <strong>v</strong>, depois, mova o cursor com as teclas de direção para selecionar o que você deseja. Após selecionar, basta digitar <strong>y</strong> para copiar, <strong>d</strong> para recortar e <strong>p</strong> para colar.</p>
<p>Caso tenha feito alguma coisa errada, basta pressionar <strong>u</strong> para cada ação que você deseja desfazer. Caso tenha desfeito mais ações que o necessário, basta refazer, pressionando <strong>ctrl+r</strong>.</p>
<p>Tá fazendo um script e deu erro na linha 1387 e tá cansado de pressionar a seta pra baixo e pensar na vida? Digite <strong>:1387</strong> e seja feliz. Ou então você quer ir direto pra última linha do arquivo mas não quer ter que digitar :10000000 e ainda correr o risco de não funcionar, basta pressionar <strong>shift+g</strong>.</p>
<p>Se o que você quer é procurar por uma palavra específica no arquivo, basta digitar <strong>/ </strong>seguido da palavra desejada (sem o :), por exemplo: <strong>/todo</strong>. Se a ocorrência encontrada não for a que você queria, basta ir pressionando <strong>n</strong> até chegar na que você quiser, se na pressa você passou direto pela palavra, basta pressionar <strong>shift+n</strong> que o vi vai voltando para ocorrências anteriores.</p>
<p>Mas se ao invés de somente localizar, você quiser substituir a ocorrência de uma palavra, basta executar o seguinte comando (supondo que você queira substituir &#8220;todo&#8221; por &#8220;done&#8221;): <strong>:s/todo/done/</strong>. Sem espaços e com a barra no final! Mas esse comando funciona somente na linha onde está o cursor. para substituir todas as ocorrências do texto, basta digitar <strong>:%s/todo/done/g</strong>. Esse <em>g</em> no final do comando que diz que vai trocar <span style="text-decoration: underline;">todas</span> as ocorrências. Sem ele, o vi troca <span style="text-decoration: underline;">somente a primeira ocorrência de cada linha</span>. Resumindo então: <span style="text-decoration: underline;">Sem</span> o sinal de <strong>%</strong>, troca somente na linha onde está o cursor. <span style="text-decoration: underline;">Com</span> o sinal de <strong>%</strong>, troca em todo o arquivo. <span style="text-decoration: underline;">Sem</span> o <strong>g</strong> no final troca somente a primeira ocorrência de cada linha. <span style="text-decoration: underline;">Com</span> o <strong>g</strong> no final, troca todas as ocorrências de cada linha.</p>
<p>Se por algum motivo, no meio da edição do arquivo você precisar executar algum comando no shell do linux, mas não quer fechar o editor nem usar outro terminal, basta digitar o comando desejado dessa forma, por exemplo: <strong>:!date</strong>. O vi vai executar o comando e voltar para a edição do arquivo como se nada tivesse acontecido. Caso você queira colocar o resultado do comando dentro do seu arquivo, basta colocar o cursor no local desejado para a inserção e digitar seu comando com um <em>ponto</em> antes da <em>exclamação</em>, assim: <strong>:.!date</strong>. O vi executará o comando date e escreverá a data atual dentro do seu arquivo.</p>
<p>Agora vamos supor que você queira copiar o conteúdo de um outro arquivo dentro do seu. Digite <strong>/split arquivo</strong>. Por exemplo, <strong>:split /etc/motd</strong>. O vi vai dividir a tela em dois blocos e você poderá editar os dois arquivos normalmente. para trocar entre os paineis, basta pressionar <strong>ctrl+ww</strong>. Você pode abrir vários arquivos dessa forma, mas a área de edição de cada um vai diminuindo, claro. :P</p>
<p>Caso você esteja pensando &#8220;Pô, bem que o vi poderia ter abas também, todo mundo tem abas hoje em dia!&#8221; fique feliz, desde a versão 7 o vi possui esse recurso. Para abrir uma nova aba, basta digitar <strong>:tabnew arquivo</strong>. Para navegar através delas, basta usar os comandos: <strong>:tabnext</strong>, <strong>:tabprev</strong>, <strong>:tabfirst</strong>, <strong>:tablast</strong> ou <strong>:tab n</strong>, onde n é o número da tab desejada.</p>
<p>De forma similar, quando você abrir vários arquivos simultâneos no vi ($vi arq1 arq2 arq3, por exemplo), para navegar entre esses arquivos basta usar os comandos: <strong>:next</strong>, <strong>:previous</strong>, <strong>:first</strong>, <strong>:last</strong> ou <strong>:3next</strong> ou <strong>:5prev</strong>. Nos dois últimos casos, o vi vai pular tantos arquivos quanto for o valor do número antes do comando (se tiver isso tudo de arquivo, claro).</p>
<p>E finalmente para sair do editor, além do famigerado <strong>:wq</strong> para salvar e sair, você também pode pressionar <strong>shift+zz</strong>.</p>
<p>Dois comandos que eu aconselho colocar direto no arquivo de configuração do Vim para ele já abrir com essas funcionalidades é o syntax highlight e a numeração de linhas.</p>
<p>Para fazer isso, basta editar o arquivo <strong>/etc/vim/vimrc</strong> e descomentar a linha <strong>syntax on</strong> para habilitar o highlight e incluir o comando <strong>set number</strong> para numerar as linhas.</p>
<p>Além desses, o Vim possui milhares de outros comandos e formas de fazer essas mesmas ações que falei aqui. Para saber mais, basta ler a documentação do programa.</p>


<p>Nenhum post relacionado.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.cleiver.com/2008/08/22/dicas-de-vim/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
