The source content for blog.juliobiason.me
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

130 lines
5.7 KiB

<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<!-- Enable responsiveness on mobile devices-->
<!-- viewport-fit=cover is to support iPhone X rounded corners and notch in landscape-->
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1, viewport-fit=cover">
<title>Julio Biason .Me 4.3</title>
<!-- CSS -->
<link rel="stylesheet" href="https://blog.juliobiason.me/print.css" media="print">
<link rel="stylesheet" href="https://blog.juliobiason.me/poole.css">
<link rel="stylesheet" href="https://blog.juliobiason.me/hyde.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=PT+Sans:400,400italic,700|Abril+Fatface">
</head>
<body class=" ">
<div class="sidebar">
<div class="container sidebar-sticky">
<div class="sidebar-about">
<a href="https:&#x2F;&#x2F;blog.juliobiason.me"><h1>Julio Biason .Me 4.3</h1></a>
<p class="lead">Old school dev living in a 2.0 dev world</p>
</div>
<ul class="sidebar-nav">
<li class="sidebar-nav-item"><a href="&#x2F;">English</a></li>
<li class="sidebar-nav-item"><a href="&#x2F;pt">Português</a></li>
<li class="sidebar-nav-item"><a href="&#x2F;tags">Tags (EN)</a></li>
<li class="sidebar-nav-item"><a href="&#x2F;pt&#x2F;tags">Tags (PT)</a></li>
</ul>
</div>
</div>
<div class="content container">
<div class="post">
<h1 class="post-title">01.04. Mudando de Modos – Modo Visual</h1>
<span class="post-date">
2015-12-22
</span>
<p>Esta é a parte em que VIM deixa de ser um editor tão alienígena.</p>
<span id="continue-reading"></span>
<p>Na nota de rodapé do primeiro capítulo eu comentei que a maior parte dos
comandos do modo visual podem ser feitos no modo de comando. Como já vimos o
modo de comando, fica mais fácil entender o modo visual.</p>
<p>Em suma, o modo visual é a versão do VIM para o &quot;Shift+Direcionais&quot; dos demais
editores: Vai selecionando texto, deixando visível o que está sendo
selecionado. A diferença é que não é preciso ficar segurando o Shift o tempo
todo. E todos os demais comandos de movimentação ainda são válidos.</p>
<p>Para entrar no modo visual, você usa, em modo normal, <code>v</code> -- e, de novo, você não
precisa pressionar ou ficar segurando nenhuma tecla: o modo ficará ativo até
que você cancele o modo visual (voltando para o modo normal com <code>[Esc]</code>) ou seja
utilizado algum comando de alteração de texto (como <code>s</code>).</p>
<p>Uma vez que a região fique selecionada, você pode usar qualquer comando de
alteração de textos para executar somente naquela região. Assim, ao invés de
ficar contando quantos pontos a linha tem para chegar no número certo de saltos
para o commando <code>f</code>, você pode facilmente ativar o modo visual, navegar a bel
prazer, usado qualquer combinação de comandos de movimentação (incluindo
repetir <code>f</code> a vontade) até chegar no ponto que quiser e executar o comando
somente naquela região.</p>
<p>Além de <code>v</code>, existem outros dois outros comandos para entrar em modo visual:
<code>[Shift]+v</code> e <code>[Ctrl]+v</code>.</p>
<p><code>[Shift]+v</code> é chamado de &quot;modo visual de linha&quot; porque, bem, são selecionadas
linhas inteiras neste modo, incluíndo o caracter de nova linha de cada uma das
linhas selecionadas. Neste modo, não é possível selecionar apenas parte de uma
linha, somente linhas inteiras -- que é útil quando se quer remover aquela
função inteira<sup class="footnote-reference"><a href="#1">1</a></sup>.</p>
<p><code>[Ctrl]+v</code> é chamado de &quot;modo visual de bloco&quot; e faz algo que poucos outros
editores conseguem: seleção de regiões retangulares. A pergunta que você deve
estar se fazendo agora é: e como é que o VIM junta as linhas se eu apagar um
bloco inteiro? Resposta indireta: O modo visual de bloco funciona como se
várias seleções fossem feitas ao mesmo tempo, o que significa que cada linha é
uma seleção diferente e que cada comando de alteração de texto é executado
individualmente em cada linha. Assim, se você iniciar o modo visual de bloco,
selecionar várias linhas mas apenas uma coluna, e executar o comando <code>c,[Esc]</code>, o
que vai acontecer é que o VIM irá substituir o caracter na coluna indicada por
vírgula em cada uma das linhas. Ou seja, respondendo a pergunta feita logo no
começo deste parágrafo: o VIM irá juntar as linhas como se você tivesse ido na
primeira linha, executado o comando, retornado a coluna inicial, ido para a
linha seguinte, repetido o comando e passado para a próxima linha.</p>
<p><sup class="footnote-reference"><a href="#1">1</a></sup> Ou copiar para outro arquivo, que nós vamos ver mais pra frente.</p>
<div>
<div style="float:left">
&lt;&lt; <a href=".&#x2F;01-03-modo-de-insercao">Modo de Inserção</a>
</div>
&nbsp;
<div style="float:right">
<a href=".&#x2F;02-outros-comandos">Outros Comandos</a> &gt;&gt;
</div>
</div>
</div>
</div>
</body>
</html>