<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ Vim - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Aprenda a codificar - de graça. Tutoriais de programação em Python, JavaScript, Linux e muito mais. ]]>
        </description>
        <link>https://www.freecodecamp.org/portuguese/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ Vim - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/portuguese/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Sat, 16 May 2026 19:16:38 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/portuguese/news/tag/vim/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ Modos de uso do editor Vim explicados ]]>
                </title>
                <description>
                    <![CDATA[ O Vim tem como objetivos alterar código já existente, assim como escrever código novo. Assim, ele é dividido em diversos modos. Cada um serve a finalidades diferentes. Modo normal Por padrão, o Vim começa no modo "normal". O modo normal pode ser acessado a partir dos outros modos pressionando Esc ]]>
                </description>
                <link>https://www.freecodecamp.org/portuguese/news/modos-de-uso-do-editor-vim-explicados/</link>
                <guid isPermaLink="false">653bb19c41517403e4ea4e64</guid>
                
                    <category>
                        <![CDATA[ Vim ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Daniel Rosa ]]>
                </dc:creator>
                <pubDate>Fri, 27 Oct 2023 13:32:38 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/portuguese/news/content/images/2023/10/5f9c9ea2740569d1a4ca3e40.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Artigo original:</strong> <a href="https://www.freecodecamp.org/news/vim-editor-modes-explained/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">Vim Editor Modes Explained</a>
      </p><p>O Vim tem como objetivos alterar código já existente, assim como escrever código novo. Assim, ele é dividido em diversos modos. Cada um serve a finalidades diferentes.</p><h3 id="modo-normal"><strong><strong>Modo n<strong>ormal</strong></strong></strong></h3><p>Por padrão, o Vim começa no modo "normal". O modo normal pode ser acessado a partir dos outros modos pressionando <code>Esc</code> ou <code>&lt;Ctrl+[&gt;</code>.</p><p>No modo normal, apertar as teclas não funciona como se poderia esperar. Em outras palavras, ao apertar as teclas, você não vai inserir texto em um documento. Algumas teclas podem:</p><h4 id="mover-o-cursor"><strong><strong><strong>Move</strong>r<strong> </strong>o<strong> cursor</strong></strong></strong></h4><ul><li><strong><strong><strong><strong>h</strong></strong></strong></strong> move um caractere para a esquerda</li><li><strong><strong><strong><strong>j</strong></strong></strong></strong> move uma linha para baixo</li><li><strong><strong><strong><strong>k</strong></strong></strong></strong> move uma linha para cima</li><li><strong><strong><strong><strong>l</strong></strong></strong></strong> move um caractere para a direita</li></ul><p>Do mesmo modo que diversos comandos do vim, o movimento das linhas pode ser prefixado por um número para mover para diversas linhas ao mesmo tempo:</p><ul><li><strong><strong><strong><strong>4j</strong></strong></strong></strong> move 4 linhas para baixo</li><li><strong><strong><strong><strong>6k</strong></strong></strong></strong> move 6 linhas para cima<br></li></ul><p>Movimentos básicos em palavras:</p><ul><li><strong><strong><strong><strong>w</strong></strong></strong></strong> move para o começo da próxima palavra</li><li><strong><strong><strong><strong>b</strong></strong></strong></strong> move &nbsp;para o começo da palavra anterior</li><li><strong><strong><strong><strong>e</strong></strong></strong></strong> move &nbsp;para o final da palavra</li><li><strong><strong><strong><strong>W</strong></strong></strong></strong> &nbsp;para o começo da próxima palavra após um espaço em branco</li><li><strong><strong><strong><strong>B</strong></strong></strong></strong> &nbsp;para o começo da palavra anterior antes de um espaço em branco</li><li><strong><strong><strong><strong>E</strong></strong></strong></strong> move para o final de uma palavra antes de um espaço em branco</li></ul><p>Movimento para o começo/final da linha:</p><ul><li><strong><strong><strong><strong>0</strong></strong></strong></strong> move para o começo da linha</li><li><strong><strong><strong><strong>$</strong></strong></strong></strong> move para o final da linha</li></ul><h4 id="manipular-texto"><strong><strong><strong>Manipula</strong>r<strong> text</strong>o</strong></strong></h4><h4 id="entrando-em-outros-modos"><strong><strong>Entrando em outros modos</strong></strong></h4><p><strong><strong>O modo n<strong><strong>ormal </strong></strong></strong></strong>é onde se passa a maior parte do tempo usando o Vim. Lembre-se: isso é o que torna o Vim diferente.</p><p>No modo normal, há várias maneiras de se mover em um arquivo aberto. Além de usar as teclas do cursor para se mover, é possível usar <code>h</code> (esquerda), <code>j</code> (abaixo), <code>k</code> (acima), e <code>l</code> (direita) para a movimentação. Isso é um auxílio especial aos digitadores mais sensíveis, que não gostam de deixar a linha central do teclado ao fazer alterações.</p><p>Você também pode fazer alterações a caracteres únicos no modo normal. Por exemplo, para substituir um único caractere, mova o cursor para cima dele, pressione <code>r</code> e o caractere que você deseja usar para substituí-lo. Da mesma maneira, você pode excluir caracteres únicos movendo seu cursor para cima deles e pressionando <code>x</code>.</p><p>Para desfazer uma ação, pressione <code>u</code> no modo normal. Isso desfaz as alterações até a última vez em que você esteve no modo normal. Se quiser refazer (ou seja, desfazer o desfazer), pressione <code>Ctrl+r</code> no modo normal.</p><h3 id="modo-de-inser-o"><strong><strong>Modo de inserção</strong></strong></h3><p>Este é o segundo modo mais usado. Ele será o que tem o comportamento mais familiar para a maioria das pessoas. No modo de inserção, digitar insere caracteres como em um editor de texto normal. Você pode entrar nele usando um comando de inserção no modo normal.</p><p>Os comandos de inserção incluem:</p><ul><li><code>i</code> para '<strong><strong><strong><strong>i</strong></strong></strong></strong>nserir', altera o vim para o modo de inserção</li><li><code>a</code> para '<strong><strong><strong><strong>a</strong></strong></strong></strong>nexar', move o cursor para depois do caractere atual e entra no modo de inserção</li><li><code>o</code> insere uma nova linha abaixo da linha atual e entra no modo de inserção na nova linha</li></ul><p>Esses comandos acima têm uma versão em maiúsculas também:</p><ul><li><code>I</code> move o cursor para o início da linha e entra no modo de inserção</li><li><code>A</code> move o cursor para o final da linha e entra no modo de inserção</li><li><code>O</code> insere uma nova linha acima da atual e entra no modo de inserção na nova linha</li></ul><p>Existem muitas outras maneiras de se inserir texto no Vim que estão além do que pode ser listado aqui. Essas são as mais simples. Tenha cuidado ao permanecer por muito tempo no modo de inserção. O Vim não foi projetado para ficar no modo de inserção o tempo todo.</p><p>Para sair do modo de inserção e voltar ao modo normal, pressione <code>Esc</code> ou <code>&lt;Ctrl+[&gt;</code></p><h3 id="modo-visual"><strong><strong>Modo v<strong>isual</strong></strong></strong></h3><p>O modo visual é usado para fazer seleções de texto de modo semelhante ao comportamento de clicar e arrastar com um mouse. Selecionar o texto permite que os comandos se apliquem somente à seleção, como copiar, excluir, substituir e assim por diante.</p><p>Para fazer uma seleção de texto:</p><ul><li>Pressione <code>v</code> para entrar no modo visual. Isso também marcará o começo de um ponto de seleção</li><li>Mova o cursor até o ponto final de seleção desejado. O Vim fornecerá um destaque visual à seleção do texto</li></ul><p>O modo visual também tem as seguintes variações:</p><ul><li><code>V</code> para entrar no modo de linha visual. Isso tornará as seleções de texto linha por linha</li><li><code>&lt;Ctrl+V&gt;</code> entrará no modo de bloco. Isso tornará as seleções por bloco. Ao mover o cursor, você fará retângulos de seleção de texto</li></ul><p>Para sair do modo visual e voltar ao modo normal, pressione <code>Esc</code> ou <code>&lt;Ctrl+[&gt;</code>.</p><p>O modo visual, de fato, tem diversos subtipos: <em><em>visual</em></em>, <em><em>visual</em></em> <em>de bloco</em> e <em><em>visua</em>l de linha</em></p><ul><li><em><em>visual</em></em>: como descrito acima. Entre pressionando <code>v</code></li><li><em><em>visual</em> de bloco</em>: selecione uma região retangular. Entre pressionando <code>&lt;Ctrl&gt;+v</code></li><li><em><em>visual</em> de linha</em>: sempre seleciona linhas inteiras. Entre pressionando <code>&lt;Shift&gt;+v</code></li></ul><h3 id="modo-de-comando"><strong>Modo de comando</strong></h3><p>O modo de comando tem uma grande variedade de comandos e pode fazer coisas que o modo normal não consegue facilmente. Para entrar no modo de comando, digite ':' a partir do modo normal e digite seu comando, que deverá aparecer na parte inferior da janela. Por exemplo, para fazer uma busca global e substituição, digite <code>:%s/foo/bar/g</code> para substituir todos os 'foo' por 'bar'.</p><ul><li><code>:</code> entra no modo de comando</li><li><code>%</code> significa por todas as linhas</li><li><code>s</code> significa substituir</li><li><code>/foo</code> é a expressão regular (<em>regex</em>) a ser encontrada</li><li><code>/bar/</code> é a expressão regular (<em>regex</em>) que substituirá a anterior</li><li><code>/g</code> significa global – do contrário o comando seria executado apenas uma vez, por linha</li></ul><p>O Vim tem diversos outros métodos. Você pode ler sobre eles na documentação de ajudo, com <code>:h</code> ou <code>:help</code>.</p><h3 id="modo-de-substitui-o"><strong>Modo de substituição</strong></h3><p>O modo de substituição permite alterar texto existente por outro texto digitando esse texto novo diretamente sobre o anterior. Antes de entrar nesse modo, vá para o modo normal e coloque seu cursor sobre o primeiro caractere do texto que você deseja substituir. Em seguida, pressione 'R' (R maiúsculo) para entrar no modo de substituição. Agora, o que você digitar substituirá o texto existente. O cursor se move automaticamente para o próximo caractere, como no modo de inserção. A única diferença está no fato de que todo caractere que você digitar substituirá um existente.</p><p>Boa programação para você. 😀</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Por que eu amo o Vim: recursos não tão conhecidos que fazem dele uma ferramenta incrível ]]>
                </title>
                <description>
                    <![CDATA[ Escrito por: Amit Kulkarni Desde que comecei a usar o Vim, em 2016, descobri várias funcionalidades menos conhecidas que ele oferece nativamente, sem a necessidade de plug-ins. Você pode falar de algumas noções básicas antes de começar a explicar sobre essas coisas novas? Ah, com certeza! Antes de copiar e ]]>
                </description>
                <link>https://www.freecodecamp.org/portuguese/news/por-que-eu-amo-o-vim-recursos-nao-tao-conhecidos-que-fazem-dele-uma-ferramenta-incrivel/</link>
                <guid isPermaLink="false">6484ff963aab28058e38196d</guid>
                
                    <category>
                        <![CDATA[ Vim ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Gabriel Galdino ]]>
                </dc:creator>
                <pubDate>Tue, 27 Jun 2023 21:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/portuguese/news/content/images/2023/06/1_w9dLy2njrrkNUQVugpF-6g.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Artigo original:</strong> <a href="https://www.freecodecamp.org/news/learn-linux-vim-basic-features-19134461ab85/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">Why I love Vim: It’s the lesser-known features that make it so amazing</a>
      </p><p>Escrito por: Amit Kulkarni</p><p>Desde que comecei a usar o Vim, em 2016, descobri várias funcionalidades menos conhecidas que ele oferece nativamente, sem a necessidade de <em>plug-ins</em>.</p><h4 id="voc-pode-falar-de-algumas-no-es-b-sicas-antes-de-come-ar-a-explicar-sobre-essas-coisas-novas">Você pode falar de algumas noções básicas antes de começar a explicar sobre essas coisas novas?</h4><p>Ah, com certeza! Antes de copiar e colar alguns comandos de uma folha de dicas, vou fazer uma suposição ousada: você não estaria lendo isso se quisesse uma folha de dicas e se já conhecesse o básico do Vim.</p><p>Você pode ter acabado de ouvir que as distribuições do Linux são fornecidas com um editor de texto de linha de comando padrão chamado Vim – e pode ser que você queira apenas experimentá-lo.</p><p>Então, vamos supor que você seja completamente novo nesse jogo e vamos começar apenas com o básico que precisamos entender (sem história/teoria entediante).</p><blockquote>OBSERVAÇÃO: se você já conhece o básico, <a href="https://www.freecodecamp.org/news/learn-linux-vim-basic-features-19134461ab85/#9b6b">clique aqui para pular essa parte</a>.</blockquote><h4 id="qual-o-seu-diferencial-aqui-em-compara-o-a-muitos-outros-artigos-sobre-o-vim">Qual é o seu diferencial aqui em comparação a muitos outros artigos sobre o Vim?</h4><p><br>A maioria dos artigos introdutórios sobre o Vim começa com os modos: inserir, salvar e sair. Se você estiver realmente com disposição para aprender perfeitamente a teoria dos modos, sinta-se à vontade para ler o que for útil para você nos <a href="https://en.wikibooks.org/wiki/Learning_the_vi_Editor/Vim/Modes" rel="noopener">wikibooks</a> (texto em inglês).</p><p>Também existem ótimos livros e artigos que explicam que há uma filosofia por trás da maneira como o Vim funciona e que os comandos no VI/Vim são destinados a serem combinados. É absolutamente verdade – e tenho certeza de que você apreciará isso assim que se acostumar com o editor e com o poder que ele oferece.</p><h4 id="j-ouvi-hist-rias-engra-adas-e-vi-imagens-engra-adas-sobre-a-curva-de-aprendizado-do-vim-isso-verdade-realmente-t-o-ruim-assim">Já ouvi histórias engraçadas e vi imagens engraçadas sobre a curva de aprendizado do Vim. Isso é verdade? É realmente tão ruim assim?</h4><p>Bem, sempre existirão os <em>haters</em>, certo? No entanto, na minha opinião, a imagem que representa um pouco melhor o Vim é a seguinte:</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/06/1_w9dLy2njrrkNUQVugpF-6g-1.jpeg" class="kg-image" alt="1_w9dLy2njrrkNUQVugpF-6g-1" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/06/1_w9dLy2njrrkNUQVugpF-6g-1.jpeg 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/06/1_w9dLy2njrrkNUQVugpF-6g-1.jpeg 800w" sizes="(min-width: 720px) 720px" width="800" height="600" loading="lazy"></figure><p>A maioria dos artigos sobre o Vim se refere à <em>curva</em> de aprendizado como uma <em>parede</em> de aprendizado, mas vamos ver a situação positivamente: olhe para o outro lado da parede!</p><p>Para iniciantes, é literalmente uma parede, pois eles nunca fizeram nada parecido antes para usar um editor na linha de comando. O que mais me atraiu quando comecei como iniciante foi a onipresença do Vim.</p><p>Faça login em qualquer máquina (exceto no Windows) a partir de qualquer terminal e você literalmente pode ter um editor digitando <em>vi</em> de olhos fechados. O editor aparecerá na sua frente!</p><p>Outra coisa que me atraiu foi a capacidade de trabalhar sem um mouse e sem perder tempo produtivo com o <em>touchpad </em>ou tendo de conseguir um mouse para o laptop.</p><p>Eu sei, eu sei! Já consigo ouvir alguns de vocês gritando "Emacs! Emacs!". Eu entendo. Ocorre que, desde que me envolvi com o Vim, nunca tive realmente interesse no emacs (talvez por causa da instalação necessária). Então, sim, o emacs também é ótimo, suponho. Sinta-se à vontade para mudar antes de começar essa bela jornada com o VI(m).</p><h4 id="acabei-de-abrir-meu-terminal-digitei-vi-e-pressionei-a-tecla-enter-tudo-o-que-vejo-uma-tela-de-boas-vindas-n-o-consigo-digitar-e-n-o-sei-como-sair-disso-tem-certeza-de-que-um-editor-poderoso-com-recursos">Acabei de abrir meu terminal, digitei vi e pressionei a tecla Enter. Tudo o que vejo é uma tela de boas-vindas. Não consigo digitar e não sei como sair disso. Tem certeza de que é um editor poderoso com recursos?</h4><p>Tenho 100% de certeza. O comportamento que você acabou de presenciar é a "parede" que mencionamos antes. Acredite em mim. O VI(m) pode fazer muitas outras coisas. Ele apenas tem suas próprias maneiras de ser usado. Você pode editar arquivos, abrir abas, dividir a tela horizontal ou verticalmente, navegar no sistema de arquivos, executar comandos Linux sem sair do arquivo, iniciar compilações a partir do seu código-fonte sem sair do arquivo, marcar diretórios e até mesmo linhas de um arquivo, buscar e substituir palavras, copiar e colar (logicamente), e muito mais.</p><h4 id="sim-como-se-fosse-uma-grande-coisa-para-um-editor-suportar-esses-recursos-todo-mundo-faz-isso-qual-a-novidade">Sim, como se fosse uma grande coisa para um editor suportar esses recursos. Todo mundo faz isso. Qual é a novidade?</h4><p>Não há uma novidade. A vantagem que vejo é a capacidade de focar no seu arquivo/código sem precisar sair do teclado. Sério, se você não se importa em usar um mouse, vá em frente e abra seu MS Word ou outro editor com interface gráfica qualquer e faça todas as edições que desejar.</p><h4 id="entendi-por-que-n-o-usar-um-ide-para-fazer-alguns-trabalhos">Entendi. Por que não usar um IDE para fazer alguns trabalhos?</h4><p>Ok, então você é um desenvolvedor e gosta/ama um IDE. Não, o VI(m) não substitui o seu IDE incrível. O VI(m) não possui os recursos incríveis de fábrica que o seu IDE possui. O VI(m) é apenas pequeno em tamanho (pacote e instalação) em comparação com os IDEs robustos e está disponível para uso sem precisar de configuração ou instalações. Sério, o VI(m) não se compara às ótimas coisas que seu IDE oferece.</p><h4 id="chega-de-conversa-mostre-me-o-b-sico-">Chega de conversa! Mostre-me o básico.</h4><p>Claro. Antes de começar, tenha em mente que qualquer usuário do Vim basicamente lida com o modo de comando e o modo de inserção. Não há escapatória (literalmente – a tecla Esc não serve para "escapar").</p><p>Vamos supor que você esteja usando algum editor e queira excluir uma função longa na linguagem C. Os passos simples que você faz são: posicione o cursor no início da linha e pressione Shift + seta para baixo até o final ou use o mouse. Essa ação que você teve que fazer para selecionar essas linhas exigiu que você <em>parasse</em> de digitar e pressionasse teclas. Não é verdade? Não me diga que você estava digitando algo e ao mesmo tempo pressionou teclas para selecionar magicamente o corpo da sua função.</p><blockquote>Seja razoável. Você pausou a digitação e fez o trabalho de seleção para dizer ao seu editor que você quer fazer algo com esse texto (copiar/recortar/negrito/itálico/qualquer coisa).</blockquote><p>Essa pausa que você fez é equivalente a estar no modo de comando no VI(m). Este é o momento em que você diz ao VI(m) que deseja fazer algumas ações em algumas linhas/palavra/qualquer coisa e você não vai digitar. Agora, VI(m) lança você para fora do modo de inserção e você está bloqueado para não digitar texto em seu arquivo. Obviamente, o outro modo no qual você pode realmente digitar em seu arquivo é o modo de inserção.</p><p>Aliás, se você estava se perguntando como selecionar o corpo da função sem selecionar o texto ou usar o mouse, eu faço isso colocando o cursor nas chaves de abertura e usando as teclas: <code>d%</code></p><p>Sim, isso exclui o conteúdo do corpo da sua função. Não, não é uma combinação assustadora de teclas para lembrar! <code>d</code> indica que você quer excluir algo (do inglês, <em>delete</em>). <code>%</code> vai mover o cursor para o final da chave correspondente.</p><p>Agora que estabelecemos os modos básicos, vamos mergulhar no básico do VI(m).</p><p>Se você conhece o nome do arquivo que está escrevendo:</p><pre><code class="language-bash">$ vi meuarquivo.c</code></pre><p>Se você não tem certeza do nome do arquivo e quer começar a digitar:</p><pre><code class="language-bash">$ vi</code></pre><p>Assim que você abrir o vi, estará no modo de comando. Para entrar no modo de inserção, pressione <code>i</code> . Digite o que desejar. Pressione <code>Esc</code> para voltar ao modo de comando. Agora você tem algumas opções para sair, dependendo de como abriu o vi.</p><p>Se você deu um nome de arquivo: <code>:w</code> gravará essas alterações com segurança no disco. <code>:q</code> sairá do editor. &nbsp;Você pode combinar essas ações com &nbsp;<code>:wq</code> &nbsp;e a tecla <code>Return</code>.</p><p>Se você não deu um nome de arquivo: <code>:wq nomedoarquivo.c</code> gravará o conteúdo no arquivo <code>nomedoarquivo.c</code> e sairá do editor. Se você não estiver interessado no texto que escreveu e desejar sair sem salvar nada: <code>:q!</code> e pronto! O <code>!</code> é necessário no final para dizer: "Sim, tenho certeza de que não quero salvar o conteúdo e quero sair urgentemente".</p><p><strong><strong>[DEMO] </strong></strong><a href="https://asciinema.org/a/wLpVX8lUuaK5mfG4tyVCk61qD"><strong>Uso básico do Vim</strong></a></p><p>Pronto! Você acabou de criar, editar e salvar (ou talvez não) seu primeiro arquivo vi. Parabéns!</p><p>Como mencionei anteriormente, esta não é uma introdução para iniciantes ao VI(m). Existem muitos outros artigos (fornecerei referências no final do artigo) para começar. Eu incluí essa introdução apenas para que você não se decepcione ao chegar nesta página e não encontrar nada para aprender.</p><blockquote>Esta é a linha onde os iniciantes se despedem dos usuários intermediários e vão para a seção de referência em busca de mais artigos introdutórios brilhantes.</blockquote><p>Boas-vindas aos usuários intermediários. Essas são algumas capacidades legais do VI(m) das quais eu não estava ciente, mas que, agora, uso diariamente para ser mais produtivo.</p><p>Para aqueles que preferem um resumo:</p><ul><li>Abas</li><li>Sessões</li><li>Números de linha (+ marcas) e copiar/colar</li><li>Dobramento </li><li>Indentação com <code>=</code></li><li>Completar ao inserir</li><li>Netrw</li><li>Divisões/janelas</li><li><code>:!</code> e um pouquinho sobre <code>:make</code></li></ul><h4 id="abas-no-vim"><strong>Abas no Vim</strong></h4><h4 id="voc-mencionou-abas-no-vim-eu-n-o-sabia-que-isso-existia-">Você mencionou abas no Vim? Eu não sabia que isso existia!</h4><p>Eu sei, não é incrível? Uma <a href="http://vimdoc.sourceforge.net/htmldoc/tabpage.html#tab-page-intro">aba</a> é uma página com uma ou mais janelas com um rótulo no topo.</p><p>Se você tiver interesse em saber mais sobre janelas, <em>buffers </em>e abas: <a href="http://vimdoc.sourceforge.net/htmldoc/windows.html#windows-intro">detalhes técnicos</a>.</p><p>Dê uma olhada:</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/06/2iMvCsKGk8iMrERGtswmB-s59dhc6A5soBD0.png" class="kg-image" alt="2iMvCsKGk8iMrERGtswmB-s59dhc6A5soBD0" width="504" height="128" loading="lazy"></figure><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/06/ec7MggpObT5GhBjZS9-XtZ4bDzjj5SUxhtlj.png" class="kg-image" alt="ec7MggpObT5GhBjZS9-XtZ4bDzjj5SUxhtlj" width="496" height="124" loading="lazy"></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/06/Hvd4DnXCni865974XxISsJuQlkMVCAPclhxk.png" class="kg-image" alt="Hvd4DnXCni865974XxISsJuQlkMVCAPclhxk" width="496" height="126" loading="lazy"><figcaption>Abas do Vim em ação</figcaption></figure><p>Passo a passo:</p><ul><li>Abra o Vim com qualquer arquivo ou apenas com o Vim: <code>$ vim file1</code>.</li><li>Digite o conteúdo do arquivo e entre no modo de comando (pressione <code>Esc</code>).</li><li><code>:tabedit file2</code> abrirá uma nova aba e o levará para editar o <code>file2</code>.</li><li><code>:tabedit file3</code> abrirá uma nova aba e o levará para editar o <code>file3</code>.</li><li>Para navegar entre essas abas, você pode estar no modo normal e digitar: <code>gt</code> para ir para a próxima aba ou <code>gT</code> para ir para a aba anterior. Você também pode navegar até uma aba específica usando <code>{i}gt</code>, onde i é o índice da sua aba. Exemplo: <code>2gt</code> leva você para a segunda aba.</li><li>Para ir diretamente para a primeira ou última aba, você pode digitar o seguinte no modo de comando: <code>:tabfirst</code> ou <code>:tablast</code> para a primeira ou para a última aba, respectivamente. Para avançar e voltar: <code>:tabn</code> para a próxima aba e <code>:tabp</code> para a aba anterior.</li><li>Você pode listar todas as abas abertas usando: <code>:tabs</code>.</li><li>Para abrir vários arquivos em abas: <code>$ vim -p source.c source.h</code>.</li><li>Para fechar uma única aba: <code>:tabclose</code>. Para fechar todas as outras abas, exceto a atual: <code>:tabonly</code>. Use o sufixo <code>!</code> para ignorar as alterações de arquivos não salvos.</li></ul><p><strong><strong>[DEMO] </strong></strong><a href="https://asciinema.org/a/ZMUyM27ZTc04yctzH7S9JyNLo"><strong>Abas no<strong> VIM</strong></strong></a></p><p>Acho que essa funcionalidade nos permite economizar tempo efetivamente, compartilhando o <em>buffer </em>entre as abas e nos permitindo copiar/colar entre as abas e manter várias sessões de abas diferentes para cada categoria de trabalho. Por exemplo: você pode ter uma aba de terminal com todas as abas do Vim contendo apenas arquivos de código-fonte C e outra aba de terminal com todas as abas do Vim contendo arquivos de cabeçalho (.h).</p><h4 id="as-abas-fornecem-tanta-conveni-ncia-para-manter-todos-os-meus-arquivos-abertos-e-acess-los-quando-eu-quiser-no-entanto-n-o-um-inc-modo-ter-que-abrir-todas-as-abas-toda-vez-que-reinicio-ou-fecho-e-abro-o-terminal">As abas fornecem tanta conveniência para manter todos os meus arquivos abertos e acessá-los quando eu quiser. No entanto, não é um incômodo ter que abrir todas as abas toda vez que reinicio ou fecho e abro o terminal?</h4><p>Com certeza! Todos nós gostamos de ter nossas próprias sessões de trabalho nas quais trabalhamos com um conjunto de arquivos e gostaríamos que o Vim restaurasse a sessão de abas do jeito que a deixamos. O Vim nos permite salvar e restaurar essas sessões de abas! ✋</p><p>Passo a passo:</p><ul><li>Abra quantas abas você quiser trabalhar.</li><li>A partir de qualquer aba, pressione <code>Esc</code> e entre no modo de comando.</li><li>Digite: <code>:mksession header-files-work.vim</code> e pressione Enter.</li><li>Sua sessão atual de abas abertas será armazenada em um arquivo chamado <code>header-files-work.vim</code>.</li><li>Para ver a restauração em ação, feche todas as abas e o Vim.</li><li>Inicie o vim com sua sessão usando: <code>$ vim -S header-files-work.vim</code> ou abra o vim com qualquer outro arquivo e entre no modo de comando para digitar: <code>:source header-files-work.vim</code> e pronto! Todas as suas abas serão abertas exatamente como você as salvou!</li><li>Se você alterar as abas da sessão (fechar/abrir novas), você pode salvá-las novamente usando: <code>:mks!</code> enquanto estiver na sessão.</li></ul><p><strong><strong>[DEMO]</strong></strong><a href="https://asciinema.org/a/NLn3NjxfBavV4mnURQWF2GlUg"><strong><strong> S</strong>essões no Vim</strong></a></p><h3 id="posso-copiar-cortar-colar-sem-precisar-saber-os-n-meros-das-linhas">Posso copiar/cortar/colar sem precisar saber os números das linhas?</h3><p>Ah, sim! Antes, eu costumava ver os números das linhas (<code>:set nu</code>)das funções que queria copiar/cortar. Digamos que eu queira copiar/cortar as linhas de 34 a 65. Eu usava <code>:34,65y</code> (Copiar/Obter) ou <code>:34,65d</code> (Cortar/Excluir).</p><blockquote>Claro que contar as linhas e usar <code>{n}yy</code> ou <code>{n}dd</code> (onde <code>n</code> é o número de linhas) não é uma opção quando estamos falando de centenas de linhas, certo?</blockquote><p>Pode haver algumas funções que se estendem por várias páginas e você não quer descer apenas para depois esquecer qual era o número da primeira linha. Há uma maneira simples de se fazer isso sem se preocupar com os números das linhas!</p><p>Passo a passo:</p><ul><li>Entre no modo normal, vá para a linha de início.</li><li>Digite <code>mk</code> (marcação de um ponto com a letra 'k' ou com qualquer outra letra).</li><li>Mova para baixo (page down ou qualquer outro) e vá para a linha final.</li><li><code>y'k</code> copiará todas as linhas do início ao fim.</li><li><code>d'k</code> cortará/excluirá todas as linhas do início ao fim.</li></ul><h4 id="eu-tenho-algumas-fun-es-longas-irritantes-no-topo-do-meu-arquivo-e-n-o-quero-perder-tempo-rolando-ou-pulando-para-determinadas-linhas-sei-que-pode-ser-muito-pedir-isso-porque-n-o-uma-ide-mas-por-acaso-podemos-fazer-o-dobramento-dos-blocos-de-c-digo">Eu tenho algumas funções longas irritantes no topo do meu arquivo e não quero perder tempo rolando ou pulando para determinadas linhas. Sei que pode ser muito pedir isso, porque não é uma IDE, mas, por acaso, podemos fazer o "dobramento" dos blocos de código?</h4><p>Com certeza! Digamos que você queira pular a etapa de lembrar os números das linhas e andar por aí com seu novo amor, <em>os marcadores</em>. Vá para o início do corpo da função e digite <code>mb</code>. Agora, vá para o final do corpo da função usando <code>%</code> (correspondência de chaves) ou qualquer outra técnica conveniente e pressione <code>zf'b</code> e pronto!</p><p>Antes e depois:</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/06/pQwngYKhoq7uH095IKSfMJnhsupztCrys20q.png" class="kg-image" alt="pQwngYKhoq7uH095IKSfMJnhsupztCrys20q" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/06/pQwngYKhoq7uH095IKSfMJnhsupztCrys20q.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/06/pQwngYKhoq7uH095IKSfMJnhsupztCrys20q.png 800w" sizes="(min-width: 720px) 720px" width="800" height="568" loading="lazy"></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/06/Rs9pkL4XAD5wiAOgWZlN8enMjeWXICv54R67.png" class="kg-image" alt="Rs9pkL4XAD5wiAOgWZlN8enMjeWXICv54R67" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/06/Rs9pkL4XAD5wiAOgWZlN8enMjeWXICv54R67.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/06/Rs9pkL4XAD5wiAOgWZlN8enMjeWXICv54R67.png 800w" sizes="(min-width: 720px) 720px" width="800" height="186" loading="lazy"><figcaption>Antes e depois</figcaption></figure><p>Se você se sentir confortável usando os números de linha, o comando é ainda mais fácil de lembrar: <code>:5,16fo</code> (fo significa "code fold" – "dobramento" de código). Depois de "dobrar" o seu código, é fácil alternar entre as visualizações abertas e fechadas usando <code>zo</code> (abrir a dobra de código) e <code>zc</code> (fechar a dobra de código). Não se preocupe tanto com isso. Basta usar <code>za</code> para alternar entre dobras abertas e fechadas.</p><p>Digamos que você tenha gasto bastante tempo dobrando suas funções em um arquivo grande. Obviamente, você vai querer manter essas dobras todas as vezes que abrir o arquivo, certo? Por que você gastaria sua energia dobrando-as se não fosse assim? Portanto, há uma solução direto no seu <code>~/.vimrc</code>. Insira as seguintes linhas no seu<code>~/.vimrc</code> e suas dobras de código serão salvas e restauradas:</p><pre><code class="language-bash">autocmd BufWinLeave *.* mkview
autocmd BufWinEnter *.* silent loadview</code></pre><h4 id="normalmente-eu-me-preocupo-com-minha-indenta-o-mas-s-vezes-tenho-que-editar-o-c-digo-de-outra-pessoa-que-n-o-teve-a-mesma-preocupa-o-com-a-indenta-o-existem-atalhos-m-gicos-para-fazer-isso-acontecer">Normalmente, eu me preocupo com minha indentação, mas, às vezes, tenho que editar o código de outra pessoa que não teve a mesma preocupação com a indentação. Existem atalhos mágicos para fazer isso acontecer?</h4><p>Claro! É tão simples quanto: <code>=i{</code> . É isso mesmo! (<strong><em>i</em></strong> significa objeto interno)</p><p><strong><strong>[DEMO]</strong> </strong><a href="https://asciinema.org/a/34MuR5ZxuRTWNmSZBuce1mwRK"><strong>Indentação no Vim</strong></a></p><p>Antes e depois:</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/06/eTijXdqLGj8P4sipH3Sa7t5Kf8-rR6Ea7vik.png" class="kg-image" alt="eTijXdqLGj8P4sipH3Sa7t5Kf8-rR6Ea7vik" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/06/eTijXdqLGj8P4sipH3Sa7t5Kf8-rR6Ea7vik.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/06/eTijXdqLGj8P4sipH3Sa7t5Kf8-rR6Ea7vik.png 800w" sizes="(min-width: 720px) 720px" width="800" height="507" loading="lazy"></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/06/V8qnKIyQxly71eRewU4tcruxI-UCF1w-3G8F.png" class="kg-image" alt="V8qnKIyQxly71eRewU4tcruxI-UCF1w-3G8F" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/06/V8qnKIyQxly71eRewU4tcruxI-UCF1w-3G8F.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/06/V8qnKIyQxly71eRewU4tcruxI-UCF1w-3G8F.png 800w" sizes="(min-width: 720px) 720px" width="800" height="579" loading="lazy"><figcaption>Antes e depois</figcaption></figure><p>Tudo o que você precisa fazer é colocar o cursor em qualquer lugar dentro de um bloco que você deseja indentar, pressionar <code>Esc</code> para entrar no modo normal e, em seguida, <code>=i{</code> . Pronto! Todo o corpo da função (incluindo blocos internos) será indentado.</p><blockquote>OBSERVAÇÃO: não espere indentação em seus arquivos Python. Isso só funciona quando o Vim consegue identificar o início e o fim usando parênteses de abertura e fechamento.</blockquote><p>Você também pode aumentar/diminuir a indentação dentro de um bloco usando: <code>&gt;;i{</code> para aumentar e <code>nd&lt;i{</code> para diminuir no modo normal.</p><h4 id="posso-estar-sonhando-mas-voz-tr-mula-quero-dizer-eu-s-quero-tentar-h-posso-estar-exagerando-muito-com-essa-pergunta-mas-pausa-de-5-segundos-n-o-importa-vamos-para-a-pr-xima-pergunta-">Posso estar sonhando, mas (<em>voz trêmula</em>), quero dizer, eu só quero tentar, hãããã, posso estar exagerando muito com essa pergunta, mas (pausa de 5 segundos)... não importa, vamos para a próxima pergunta.</h4><p>O Vim é bastante receptivo a críticas e reconhece que não é um IDE. Vamos lá, vamos ver o que você tem.</p><h4 id="bem-desculpe-mas-por-acaso-ofegante-com-algum-plug-in-ou-algo-assim-o-vim-tem-autocompletar-como-um-ide">Bem, desculpe, mas, por acaso (<em>ofegante</em>), com algum <em>plug-in</em> ou algo assim, o Vim tem autocompletar como um IDE?</h4><p>Você pode ficar surpreso, mas sim! Além disso, adivinha... </p><p><em>rufar de tambores</em>... <br><em>rufar de tambores</em>... <br><em>rufar de tambores</em>... <br><em>rufar de tambores</em>...<br></p><p><strong>Sem nenhum <em>plug-in</em>!</strong></p><p>Você me ouviu certo! A única condição para o Vim mostrar opções é "o Vim deve saber sobre o que você está falando". Isso pode ser através de um arquivo de origem incluído ou de funções ou variáveis definidas.</p><p>Tudo o que você precisa fazer é começar a digitar e, em seguida, pressionar <code>Ctrl+n</code> no modo de inserção.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/06/bpqE5V4PSocJYzVCra5QVFD6WpWQgdKyHcw-.png" class="kg-image" alt="bpqE5V4PSocJYzVCra5QVFD6WpWQgdKyHcw-" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/06/bpqE5V4PSocJYzVCra5QVFD6WpWQgdKyHcw-.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/06/bpqE5V4PSocJYzVCra5QVFD6WpWQgdKyHcw-.png 766w" sizes="(min-width: 720px) 720px" width="766" height="302" loading="lazy"></figure><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/06/OBwyMT5rKu2tqTiEYbG-ZiUGdyZQ-J0hKdhJ.png" class="kg-image" alt="OBwyMT5rKu2tqTiEYbG-ZiUGdyZQ-J0hKdhJ" width="582" height="456" loading="lazy"></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/06/PtWzDrYGUVKQKHZrX7sNd8PkYQKV54qhXjRf.png" class="kg-image" alt="PtWzDrYGUVKQKHZrX7sNd8PkYQKV54qhXjRf" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/06/PtWzDrYGUVKQKHZrX7sNd8PkYQKV54qhXjRf.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/06/PtWzDrYGUVKQKHZrX7sNd8PkYQKV54qhXjRf.png 800w" sizes="(min-width: 720px) 720px" width="800" height="580" loading="lazy"><figcaption>Exemplos em C, Python e Java</figcaption></figure><p>Imagine só as possibilidades, especialmente se você estiver escrevendo código em C e não conseguir se lembrar da chamada exata da biblioteca OpenSSL. Tudo o que você precisa fazer é incluir o cabeçalho!</p><p><a href="https://asciinema.org/a/NXJIU6fNkCz2Lk2uKYBhcv5Fi"><strong><strong>[DEMO] </strong>Recurso de autocompletar no Vim</strong></a></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/06/ATclZNHrZU8b2kesTWFlGAcXVlDp2A6KCklC.jpeg" class="kg-image" alt="ATclZNHrZU8b2kesTWFlGAcXVlDp2A6KCklC" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/06/ATclZNHrZU8b2kesTWFlGAcXVlDp2A6KCklC.jpeg 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/06/ATclZNHrZU8b2kesTWFlGAcXVlDp2A6KCklC.jpeg 800w" sizes="(min-width: 720px) 720px" width="800" height="451" loading="lazy"><figcaption>Preenchimento automático do Vim ajudando com funções OpenSSL</figcaption></figure><p>Deixe-me lembrar novamente: sem a necessidade de <em>plug-ins</em>, ok?</p><p>OBSERVAÇÃO: os arquivos de cabeçalho podem estar localizados em outros locais no Mac e o Vim pode não ser capaz de encontrá-los. Eu uso um Mac para fazer login em uma máquina Linux. Então, se você estiver usando um Mac, me desculpe por isso.</p><h4 id="eu-entendo-que-o-vim-apenas-um-editor-de-texto-mas-se-voc-quer-que-eu-trabalhe-sem-perder-o-foco-e-sem-sair-do-vim-o-tempo-todo-quais-op-es-eu-tenho-se-n-o-consigo-lembrar-todos-os-nomes-de-arquivo">Eu entendo que o Vim é apenas um editor de texto, mas se você quer que eu trabalhe sem perder o foco e sem sair do Vim o tempo todo, quais opções eu tenho se não consigo lembrar todos os nomes de arquivo?</h4><p>Simples, use o explorador de arquivos fornecido pelo Vim! Sim, o Vim oferece um explorador de arquivos simples (<em>sem nenhum plug-in</em>). Basta digitar: <code>Explore</code> em qualquer janela do Vim e você verá um explorador de arquivos fácil de navegar, que pode ser percorrido usando as setas para cima ⬆ e para baixo ⬇. Pressione <code>Enter/Return</code> para abrir um arquivo/diretório. Use: <code>q</code> para sair do explorador e do Vim. Se você não deseja sair do Vim e continuar trabalhando com um arquivo aberto, você tem 3 opções:</p><ol><li>Abra o explorador em uma divisão horizontal (<code>:Sexplore</code>) ou vertical (<code>:Vexplore</code>) e saia do explorador usando <code>:q</code>.</li><li>Abra o explorador em uma nova aba usando <code>:Texplore</code> e saia usando <code>:q</code></li><li>Abra o explorador de arquivos na janela atual e, em seguida, descarregue o <em>buffer </em>atual e o remova da lista de <em>buffers </em>usando <code>:bdel</code> (excluir <em>buffer</em>).</li></ol><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/06/GImb6qQyAyyLoE4unQ1gelPBDz8A2gbizZW9.png" class="kg-image" alt="GImb6qQyAyyLoE4unQ1gelPBDz8A2gbizZW9" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/06/GImb6qQyAyyLoE4unQ1gelPBDz8A2gbizZW9.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/06/GImb6qQyAyyLoE4unQ1gelPBDz8A2gbizZW9.png 694w" width="694" height="478" loading="lazy"><figcaption><code>:Explore</code> a partir de qualquer janela do Vim mostra o explorador de arquivos</figcaption></figure><blockquote>OBSERVAÇÃO: você também pode usar o comando abreviado <code>:Ex</code> para abrir o explorador de arquivos</blockquote><h4 id="-s-vezes-eu-tenho-que-repetir-as-mesmas-etapas-em-algumas-linhas-para-editar-algo-tenho-certeza-de-que-o-vim-tem-algum-recurso-que-me-permite-fazer-isso-estou-certo">Às vezes, eu tenho que repetir as mesmas etapas em algumas linhas para editar algo. Tenho certeza de que o Vim tem algum recurso que me permite fazer isso. Estou certo?</h4><p>100% certo! Você está falando sobre macros – e o Vim suporta macros. Repetir o último comando executado é simples e pode ser usado para tarefas repetitivas simples. No entanto, se o processamento de texto consistir em várias etapas para obter um resultado, as macros são úteis.</p><p>Considere um exemplo de um arquivo de cabeçalho em C:</p><pre><code class="language-c">void encrypt_text(char *text, int bytes)
void decrypt_text(char *text, int bytes)
void process_text(char *text, int bytes)
void another_important_function(int bytes, double precision)</code></pre><p>Ops! Você se esqueceu de colocar um ponto e vírgula no final de cada linha e também percebeu que todas essas funções retornam um código de erro inteiro em vez de void.</p><p>Coloque o cursor no início da palavra <code>void</code></p><ul><li>Pressione <code>cw</code> no modo normal para excluir a palavra <code>void</code> e digitar <code>int</code>.</li><li>Pressione <code>Esc</code> , vá para o final da linha usando <code>Shift+a</code> para inserir o <code>;</code>.</li><li>Pressione <code>Esc</code> e pressione <code>^</code> para retornar ao início da linha editada.</li></ul><p>O resultado é:</p><pre><code class="language-c">int encrypt_text(char *text, int bytes);
void decrypt_text(char *text, int bytes)
void process_text(char *text, int bytes)
void another_important_function(int bytes, double precision)</code></pre><p>Você pode gravar essa sequência de etapas e reproduzi-la em todas as 4 linhas.</p><p>Tudo que você precisa fazer é, antes de iniciar a sequência, iniciar a gravação da macro em qualquer letra (vamos dizer <code>a</code>) pressionando <code>qa</code> no modo normal. Agora, suas etapas estarão sendo gravadas em <code>a</code> . Quando terminar todas as etapas, basta pressionar <code>q</code> no modo normal. Isso encerrará a gravação. Para reproduzir essas etapas, basta manter o cursor no mesmo lugar em que foi colocado durante a macro. Pressione <code>@a</code> e pronto! O Vim repetirá as mesmas etapas para você nessa linha! Para repeti-lo em várias linhas, você também pode usar <code>@@</code> após usar o comando <code>@a</code> uma vez.</p><h4 id="eu-sei-que-o-vim-est-longe-de-ser-um-ambiente-de-desenvolvimento-integrado-ide-e-posso-ter-algumas-esperan-as-pouco-realistas-mas-s-uma-pergunta-r-pida-poss-vel-editar-arquivos-remotamente-com-o-vim">Eu sei que o Vim está longe de ser um ambiente de desenvolvimento integrado (IDE) e posso ter algumas esperanças pouco realistas, mas só uma pergunta rápida: é possível editar arquivos remotamente com o Vim?</h4><p>Se você considerar os recursos disponíveis:<br>[1] Vim;<br>[2] openssh-client (vem instalado na maioria das distribuições Linux).</p><p>Você está com sorte, meu amigo! Sim, o Vim suporta a edição remota de arquivos. O Vim utiliza a conexão segura estabelecida pelo scp (cópia segura), fornecida pelo openssh-client. Há momentos em que você está trabalhando com arquivos em várias máquinas remotas e é uma perda de tempo fazer login em uma máquina apenas para editar um único arquivo! Você pode ficar tranquilo na sua máquina atual, desde que saiba as credenciais e o caminho da máquina remota.</p><pre><code class="language-bash">vim scp://usuarioremoto@IP_ou_nomedohost_remoto/caminho/relativo/do/arquivo</code></pre><p>Por exemplo: Eu preciso editar um arquivo em 10.0.18.12 armazenado em <code>/home/dev-john/project/src/main.c</code> e tenho as credenciais de login para <code>dev-john</code>, Posso acessar o <code>main.c</code> usando:</p><pre><code>$ vim scp://dev-john@10.0.18.12/project/src/main.c</code></pre><p>Posso usar o caminho relativo porque posso começar a procurar o arquivo a partir do diretório home de <code>dev-john</code>.</p><p>DICA: se você acessa uma máquina remota com frequência, pode criar um arquivo de configuração ssh para criar um atalho para a conexão. Crie um arquivo <code>~/.ssh/config</code> com:</p><pre><code class="language-bash">Host remote-dev-machine
    Hostname 10.0.18.12
    User dev-john
    IdentityFile ~/.ssh/id_rsa</code></pre><p>Agora, você pode acessar seu arquivo usando:</p><pre><code class="language-bash">$ vim scp://remote-dev-machine/project/src/main.c</code></pre><p>Se for confuso lembrar do caminho relativo e não for intuitivo, você também pode especificá-lo de modo alternativo:</p><pre><code class="language-bash">$ vim scp://maquina_dev_remota/~dev-john/project/src/main.c</code></pre><h4 id="incr-vel-j-estou-animado-com-as-capacidades-prontas-para-uso-do-vim-parece-que-voc-tem-uma-solu-o-para-muitos-problemas-comuns-de-edi-o-vamos-ver-eu-tenho-um-arquivo-com-mais-de-2-mil-linhas-e-as-fun-es-de-meu-interesse-est-o-nas-linhas-9-768-e-1898-eu-sei-que-posso-pular-para-uma-linha-usando-o-n-mero-da-linha-mas-n-o-sou-bom-em-lembrar-esses-n-meros-voc-tem-algo-para-mim">Incrível! Já estou animado com as capacidades prontas para uso do Vim. Parece que você tem uma solução para muitos problemas comuns de edição. Vamos ver. Eu tenho um arquivo com mais de 2 mil linhas e as funções de meu interesse estão nas linhas 9, 768 e 1898. Eu sei que posso pular para uma linha usando o número da linha, mas não sou bom em lembrar esses números. Você tem algo para mim?</h4><p>Claro que sim! O que você está procurando é uma solução de marcação local no Vim usando letras. Tudo que você precisa fazer é:</p><ul><li>Coloque o cursor em qualquer linha em qualquer posição.</li><li>Pressione <code>Esc</code> para garantir que esteja no modo normal.</li><li>Pressione <code>m{lowercaseletter}</code>, onde <code>{lowercaseletter}</code> é qualquer letra minúscula de <code>a-z</code>.</li><li>Você acabou de criar uma marcação local para navegar em seu arquivo.</li></ul><p>Para visualizar todas as suas marcações: pressione <code>Esc</code> e para entrar no modo de comando, digite <code>:marks</code> e pressione <code>Enter/Return</code>. Você verá uma lista de suas marcações. Para visitar qualquer marcação a qualquer momento, basta pressionar <code>Esc</code> e digitar <code>`{lowercaseletter}</code>. Pronto! Você será levado exatamente para a mesma localização onde marcou com o cursor. Exemplo:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/06/IqGeVQdTLQSrCFzKVqa9-eVswnzGT2SkDy8H.png" class="kg-image" alt="IqGeVQdTLQSrCFzKVqa9-eVswnzGT2SkDy8H" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/06/IqGeVQdTLQSrCFzKVqa9-eVswnzGT2SkDy8H.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/06/IqGeVQdTLQSrCFzKVqa9-eVswnzGT2SkDy8H.png 678w" width="678" height="212" loading="lazy"><figcaption>Marcações no Vim</figcaption></figure><p>Eu criei uma marcação local para a linha 21, coluna 18 usando <code>a</code>. Se eu estiver editando algo na linha 1783, basta pressionar <code>Esc</code> e digitar <code>`a</code> :</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/06/rpK-WeLKT0ESw1RIL80EEgrfBQwy1wWwKnIj.png" class="kg-image" alt="rpK-WeLKT0ESw1RIL80EEgrfBQwy1wWwKnIj" width="572" height="270" loading="lazy"></figure><p>Para resolver seu problema, tudo que você precisa fazer é criar 3 marcações locais e pular rapidamente para elas ao verificar <code>:marks</code>.</p><p>Problema resolvido!</p><p>Que tal se eu dissesse que você também pode criar marcadores globais? Sim, é possível criar marcadores globais também! Eles são equivalentes aos atalhos de janelas ou GUI (links simbólicos/<em>hardlinks</em> no Linux), exceto pelo fato de que você não precisa criar um link real. É isso mesmo! Você pode literalmente pular de editar um arquivo em /<code>dir1</code> pra outro arquivo e linha em <code>/project/src/</code> no seu Vim sem sair!</p><p>Não se preocupe, não é algo novo e difícil de lembrar. Tudo que você precisa fazer é: usar uma letra maiúscula em vez de uma letra minúscula para criar um marcador global. Isso é tudo! Sério mesmo! Você navega até o marcador global usando o mesmo processo. Por exemplo: se você criou um marcador usando <code>mP</code> , tudo que você precisa fazer é pressionar <code>Esc</code> e digitar <code>`P</code> e pronto! Você pula para o seu marcador global (o Vim se lembra do caminho, o que faz com que você não precise digitar nada sobre o caminho).</p><p>Você pode acessar os marcadores globais da mesma maneira que os locais: <code>:marks</code></p><pre><code class="language-bash">:marks
mark line  col file/text
 P     53    4 ~/project/src/large-file.c
 A     11    0 ~/project/README.md</code></pre><blockquote>OBSERVAÇÃO: se você não estiver interessado na posição do cursor e quiser estar no início da linha marcada, use <code>'P</code> em vez de <code>`P</code> (use uma aspa simples em vez de crase para se posicionar no início da linha).</blockquote><h4 id="ouvi-dizer-que-o-vim-suporta-divis-o-de-janelas-juntamente-com-abas-eu-entendo-que-as-abas-s-o-timas-e-permitem-trabalhar-com-v-rios-arquivos-abertos-ao-mesmo-tempo-o-que-essa-divis-o-por-que-eu-gostaria-disso">Ouvi dizer que o Vim suporta divisão de janelas juntamente com abas! Eu entendo que as abas são ótimas e permitem trabalhar com vários arquivos abertos ao mesmo tempo. O que é essa divisão? Por que eu gostaria disso?</h4><p>Cenários:</p><ul><li>Você pode querer editar um arquivo enquanto olha para outro arquivo simultaneamente (talvez esteja definindo uma função em C olhando para sua declaração em um arquivo de cabeçalho).</li><li>Você pode querer editar uma parte de um arquivo enquanto olha para a parte superior/inferior do mesmo arquivo simultaneamente.</li><li>Seu trabalho pode exigir que você edite um arquivo enquanto olha para diferentes partes de diferentes arquivos simultaneamente.</li></ul><p>O Vim suporta a divisão da tela tanto horizontalmente quanto verticalmente. O melhor disso é que você pode até navegar pelo sistema de arquivos para abrir um arquivo quando dividir sua tela.</p><p>Aqui estão as opções disponíveis:</p><pre><code>:split nomedoarquivo  - divide a janela na horizontal e carrega o arquivo
:vsplit nomedoarquivo - divide a janela na vertical e abre o arquivo
ctrl-w seta_para_cima - move o cursor para cima em uma janela
ctrl-w ctrl-w    - move o cursor para outra janela (ciclo)
ctrl-w _         - maximiza a janela atual na vertical
ctrl-w |         - maximiza a janela atual na horizontal
ctrl-w =         - torna todas as janelas do mesmo tamanho
:sview file      - o mesmo que split, mas somente leitura
:close           - fecha a janela atual</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/06/wj-bKJhdZ0ZJpjs3ryZGa9vGat9nkn6PoZB6.png" class="kg-image" alt="wj-bKJhdZ0ZJpjs3ryZGa9vGat9nkn6PoZB6" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/06/wj-bKJhdZ0ZJpjs3ryZGa9vGat9nkn6PoZB6.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/06/wj-bKJhdZ0ZJpjs3ryZGa9vGat9nkn6PoZB6.png 800w" sizes="(min-width: 720px) 720px" width="800" height="425" loading="lazy"></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/06/4fwUNCFGZHMpC9NgLN34JGK1JFMOSpSwRANi.png" class="kg-image" alt="4fwUNCFGZHMpC9NgLN34JGK1JFMOSpSwRANi" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/06/4fwUNCFGZHMpC9NgLN34JGK1JFMOSpSwRANi.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/06/4fwUNCFGZHMpC9NgLN34JGK1JFMOSpSwRANi.png 800w" sizes="(min-width: 720px) 720px" width="800" height="890" loading="lazy"><figcaption>Janela normal (canto superior esquerdo), :split &lt;arquivo&gt; (canto superior direito), :vsplit &lt;arquivo&gt; (inferior)</figcaption></figure><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/06/E1ewlYcq9bHjEW1sXhSpt1LaKlqNPH81jWw4.png" class="kg-image" alt="E1ewlYcq9bHjEW1sXhSpt1LaKlqNPH81jWw4" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/06/E1ewlYcq9bHjEW1sXhSpt1LaKlqNPH81jWw4.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/06/E1ewlYcq9bHjEW1sXhSpt1LaKlqNPH81jWw4.png 800w" sizes="(min-width: 720px) 720px" width="800" height="187" loading="lazy"></figure><p>Maximizando uma janela para trabalhar:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/06/6ojjo1cyuKPSotf19qxtRcksAKoamYpx3mgz.png" class="kg-image" alt="6ojjo1cyuKPSotf19qxtRcksAKoamYpx3mgz" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/06/6ojjo1cyuKPSotf19qxtRcksAKoamYpx3mgz.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/06/6ojjo1cyuKPSotf19qxtRcksAKoamYpx3mgz.png 800w" sizes="(min-width: 720px) 720px" width="800" height="239" loading="lazy"><figcaption>O painel precisa ser maximizado verticalmente e horizontalmente para ocupar toda a janela</figcaption></figure><p>Redimensionando:</p><pre><code>CTRL-W [N] -	Diminui a altura da janela atual em N (padrão 1)
CTRL-W [N] +	Aumenta a altura da janela atual em N (padrão 1)
CTRL-W [N] &lt;	Diminui a largura da janela atual em N (padrão 1)
CTRL-W [N} &gt;	Aumenta a largura da janela atual em N (padrão 1)</code></pre><p><strong>Existe alguma maneira de usar o explorador de arquivos enquanto divido as janelas? Não consigo me lembrar e digitar sempre os nomes dos arquivos!</strong></p><p>Claro, tudo que você precisa fazer é digitar: <code>:Sexplore</code> para o explorador de arquivos horizontal e <code>:Vexplore</code> para o explorador de arquivos vertical. Você também pode usar: <code>:Vexplore!</code> para abrir o explorador de arquivos no lado direito (em vez do padrão esquerdo).</p><p>Novamente, tudo isso funciona <em>sem a necessidade de plug-ins adicionais.</em></p><h4 id="estou-no-meio-da-edi-o-de-um-c-digo-e-preciso-executar-rapidamente-um-comando-de-shell-devo-salvar-meu-trabalho-sair-do-vim-e-executar-meus-comandos-aposto-que-h-uma-maneira-melhor-com-o-vim-">Estou no meio da edição de um código e preciso executar rapidamente um comando de shell. Devo salvar meu trabalho, sair do Vim e executar meus comandos? Aposto que há uma maneira melhor com o Vim.</h4><p>O Vim não quer que você saia dele e quer que você continue focado no seu trabalho. Por isso, há a opção de executar comandos de shell de dentro do Vim. Não se preocupe, todo o seu trabalho não salvo não será descartado, você apenas executa o seu comando e pronto! Você está de volta ao seu arquivo salvo/não salvo com segurança!</p><p>Digamos que você esteja no meio de uma sessão de codificação e precisa dar uma olhada na página do <code>man</code> das operações de arquivo porque esqueceu a assinatura! Você não precisa salvar seu trabalho, sair do Vim e depois verificar as páginas do <code>man</code>, nem precisa abrir outra aba apenas para a página do <code>man</code>. Você pode executar o comando diretamente dentro do editor Vim.</p><p><strong><strong>[DEMO]</strong> </strong><a href="https://asciinema.org/a/vZgdxBb0slZG3cB9ZXqNFpgpi"><strong>Comandos Unix do Vim</strong></a></p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/06/AdheBhI32Ti3bOsjH-FUPuqugongB41XMJ-k.png" class="kg-image" alt="AdheBhI32Ti3bOsjH-FUPuqugongB41XMJ-k" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/06/AdheBhI32Ti3bOsjH-FUPuqugongB41XMJ-k.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/06/AdheBhI32Ti3bOsjH-FUPuqugongB41XMJ-k.png 800w" sizes="(min-width: 720px) 720px" width="800" height="576" loading="lazy"></figure><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/06/PbN-40zw3dLd-ADaoSlY9j4r1CPveMmCdy5Q.png" class="kg-image" alt="PbN-40zw3dLd-ADaoSlY9j4r1CPveMmCdy5Q" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/06/PbN-40zw3dLd-ADaoSlY9j4r1CPveMmCdy5Q.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/06/PbN-40zw3dLd-ADaoSlY9j4r1CPveMmCdy5Q.png 800w" sizes="(min-width: 720px) 720px" width="800" height="590" loading="lazy"></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/06/QR57vMytkwfcB3eNbz2UDIRAS6hxw3T7j5nJ.png" class="kg-image" alt="QR57vMytkwfcB3eNbz2UDIRAS6hxw3T7j5nJ" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/06/QR57vMytkwfcB3eNbz2UDIRAS6hxw3T7j5nJ.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/06/QR57vMytkwfcB3eNbz2UDIRAS6hxw3T7j5nJ.png 772w" sizes="(min-width: 720px) 720px" width="772" height="548" loading="lazy"><figcaption>Executando comandos de shel no Vim e retornando ao editor</figcaption></figure><p>Adivinha! Prepare-se para se surpreender. O Vim também suporta o comando <code>make</code> a partir do seu arquivo! Tudo que você precisa fazer é navegar até um diretório com um <code>Makefile</code>. Abra qualquer arquivo (pode ser seu código-fonte) e faça todas as alterações e salve. Espere, não há necessidade de sair para ver o resultado da compilação. Você pode acionar a compilação do <code>make</code> diretamente do Vim:</p><p><strong><strong>[DEMO]</strong> </strong><a href="https://asciinema.org/a/148687"><strong>Acionar a compilação do make a partir do Vim</strong></a></p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/06/X5Fc1RFaV6cmQNbfBZx-mk0SORNL6vt7ZhKj.png" class="kg-image" alt="X5Fc1RFaV6cmQNbfBZx-mk0SORNL6vt7ZhKj" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/06/X5Fc1RFaV6cmQNbfBZx-mk0SORNL6vt7ZhKj.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/06/X5Fc1RFaV6cmQNbfBZx-mk0SORNL6vt7ZhKj.png 800w" sizes="(min-width: 720px) 720px" width="800" height="204" loading="lazy"></figure><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/06/RtDOq--CU522ri03TzCNsfXXsvZ5k8bnU0QY.png" class="kg-image" alt="RtDOq--CU522ri03TzCNsfXXsvZ5k8bnU0QY" width="592" height="134" loading="lazy"></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/06/KbeSb0lbsalK-wXV7JLnLuf1kiRLYP-qQQt7.png" class="kg-image" alt="KbeSb0lbsalK-wXV7JLnLuf1kiRLYP-qQQt7" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/06/KbeSb0lbsalK-wXV7JLnLuf1kiRLYP-qQQt7.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/06/KbeSb0lbsalK-wXV7JLnLuf1kiRLYP-qQQt7.png 650w" width="650" height="156" loading="lazy"><figcaption>Acionando make builds a partir do Vim</figcaption></figure><p>Do mesmo modo, você pode compilar outros alvos no seu Makefile!</p><p>Exemplo – Limpeza do diretório de compilação:</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/06/et4iHMv7ucgX9wwpKF9q3tv6EItczICVobsz.png" class="kg-image" alt="et4iHMv7ucgX9wwpKF9q3tv6EItczICVobsz" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/06/et4iHMv7ucgX9wwpKF9q3tv6EItczICVobsz.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/06/et4iHMv7ucgX9wwpKF9q3tv6EItczICVobsz.png 800w" sizes="(min-width: 720px) 720px" width="800" height="201" loading="lazy"></figure><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/06/ERlbwxBamwe-f6OIU3i5pypZdBCKTJvlxNt1.png" class="kg-image" alt="ERlbwxBamwe-f6OIU3i5pypZdBCKTJvlxNt1" width="568" height="98" loading="lazy"></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/06/6hcFG2Kp9MZ0YhswQDNdIBfduX9NICQNpvx3.png" class="kg-image" alt="6hcFG2Kp9MZ0YhswQDNdIBfduX9NICQNpvx3" width="592" height="176" loading="lazy"><figcaption>Diretório de limpeza usando o comando make do Vim</figcaption></figure><p>Espero que esses recursos legais ajudem você a usar o Vim de modo mais produtivo.</p><h3 id="refer-ncias-em-ingl-s-">Referências (em inglês):</h3><ul><li><a href="http://www.openvim.com/tutorial.html" rel="noopener">http://www.openvim.com/tutorial.html</a></li><li><a href="https://linuxconfig.org/vim-tutorial" rel="noopener">https://linuxconfig.org/vim-tutorial</a></li><li><a href="ftp://ftp.vim.org/pub/vim/doc/book/vimbook-OPL.pdf" rel="noopener">ftp://ftp.vim.org/pub/vim/doc/book/vimbook-OPL.pdf</a></li><li><a href="http://vim.wikia.com/wiki/Tutorial" rel="noopener">http://vim.wikia.com/wiki/Tutorial</a></li><li><a href="http://www.viemu.com/a-why-vi-vim.html" rel="noopener">http://www.viemu.com/a-why-vi-vim.html</a></li><li><a href="http://robertames.com/files/vim-editing.html" rel="noopener">http://robertames.com/files/vim-editing.html</a></li><li><a href="https://www.youtube.com/watch?v=wlR5gYd6um0" rel="noopener">https://www.youtube.com/watch?v=wlR5gYd6um0</a></li></ul> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Guia de configuração do Vimrc - como personalizar o editor de código Vim usando mapeamentos, Vimscript, linha de status e mais ]]>
                </title>
                <description>
                    <![CDATA[ Configurar o arquivo .vimrc  permite que você use o Vim e todo poder que ele oferece. Personalizando o arquivo .vimrc, você pode deixar o Vim dez vezes mais poderoso. Neste artigo, vou mostrar algumas formas de personalizar o arquivo .vimrc. Eu vou mostrar:  * Configurações básicas  * Plug-ins ]]>
                </description>
                <link>https://www.freecodecamp.org/portuguese/news/guia-de-configuracao-do-vimrc-como-personalizar-o-editor-de-codigo-vim/</link>
                <guid isPermaLink="false">641af136a2272ae7bb7fb98c</guid>
                
                    <category>
                        <![CDATA[ Vim ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Diogo Moura ]]>
                </dc:creator>
                <pubDate>Sun, 14 May 2023 21:00:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/portuguese/news/content/images/2023/05/cover_image.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Artigo original:</strong> <a href="https://www.freecodecamp.org/news/vimrc-configuration-guide-customize-your-vim-editor/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">Vimrc Configuration Guide - How to Customize Your Vim Code Editor with Mappings, Vimscript, Status Line, and More</a>
      </p><p>Configurar o arquivo .vimrc &nbsp;permite que você use o Vim e todo poder que ele oferece. Personalizando o arquivo .vimrc, você pode deixar o Vim dez vezes mais poderoso.</p><p>Neste artigo, vou mostrar algumas formas de personalizar o arquivo .vimrc.</p><p>Eu vou mostrar:</p><ul><li>Configurações básicas</li><li>Plug-ins</li><li>Dobramento (<em>folding</em>)</li><li>Vimscript</li><li>Linha de status</li></ul><p> Primeiro, crie a seguinte estrutura de diretórios no seu diretório <em>home</em>:</p><pre><code class="language-bash">.vim/
 ├── autoload/
 ├── backup/
 ├── colors/
 └── plugged/</code></pre><pre><code>$ mkdir -p ~/.vim ~/.vim/autoload ~/.vim/backup ~/.vim/colors ~/.vim/plugged</code></pre><p>Crie um arquivo .vimrc &nbsp;no seu diretório <em>home</em>:</p><pre><code class="language-bash">$ touch ~/.vimrc
</code></pre><h1 id="como-atualizar-as-configura-es-b-sicas-no-vim">Como atualizar as configurações básicas no VIM</h1><p>Primeiro, adicionaremos algumas configurações básicas que melhorarão a sua experiência de edição. Eu costumo utilizar aspas duplas para comentar uma linha.</p><p>Adicione as linhas a seguir no seu arquivo .vimrc:</p><pre><code class="language-vimrc">" Desabilitar a compatibilidade com vi, que pode causar problemas inesperados.
set nocompatible

" Habilitar a detecção do tipo de arquivo. O Vim será capaz de tentar detectar automaticamente o tipo de arquivo.
filetype on

" Habilitar plug-ins e carregar o plug-in correspondente ao tipo de arquivo detectado. 
filetype plugin on

" Carregar um arquivo de indentação correspondente ao tipo de arquivo detectado.
filetype indent on</code></pre><p>O realce de sintaxe é muito útil. A próxima linha que adicionaremos ativará o realce de sintaxe e facilitará a leitura do seu código.</p><pre><code class="language-vimrc">" Ativar o realce de sintaxe.
syntax on
</code></pre><h3 id="sem-o-realce-de-sintaxe-"><strong>Sem o realce de sintaxe:</strong></h3><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/05/vim_no_highlighting.png" class="kg-image" alt="vim_no_highlighting" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/05/vim_no_highlighting.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2023/05/vim_no_highlighting.png 1000w, https://www.freecodecamp.org/portuguese/news/content/images/2023/05/vim_no_highlighting.png 1084w" width="1084" height="231" loading="lazy"></figure><h3 id="ap-s-ativar-o-realce-de-sintaxe-"><strong>Após ativar o realce de sintaxe:</strong></h3><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/05/vim_highlighting.png" class="kg-image" alt="vim_highlighting" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/05/vim_highlighting.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2023/05/vim_highlighting.png 1000w, https://www.freecodecamp.org/portuguese/news/content/images/2023/05/vim_highlighting.png 1076w" width="1076" height="232" loading="lazy"></figure><p>Você também pode mostrar o número de linhas para facilitar a navegação no arquivo.</p><pre><code class="language-vimrc">" Adiciona numeração ao lado esquerdo de cada linha.
set number
</code></pre><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/05/set_numbers.png" class="kg-image" alt="set_numbers" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/05/set_numbers.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2023/05/set_numbers.png 1000w, https://www.freecodecamp.org/portuguese/news/content/images/2023/05/set_numbers.png 1056w" width="1056" height="189" loading="lazy"></figure><p>Você pode localizar exatamente onde o cursor está posicionado, destacando a linha em que ele se encontra, tanto na horizontal quanto na vertical.</p><p>Adicione essas linhas para ativar essa função.</p><pre><code>" Destaca a linha do cursor horizontalmente, diretamente abaixo dele.
set cursorline

" Destaca a linha do cursor verticalmente, diretamente abaixo dele.
set cursorcolumn
</code></pre><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/news/content/images/2021/05/set_cursor-line-column-1.png" class="kg-image" alt="set-cursor-line-column.png" width="600" height="400" loading="lazy"></figure><p>Aqui estão algumas configurações comuns que melhoram a experiência de edição. Cada linha tem um comentário acima do comando explicando o que ele faz.</p><p>Adicione as linhas a seguir no seu arquivo .vimrc:</p><pre><code class="language-vimrc">" Define o recuo como 4 espaços.
set shiftwidth=4

" Define ao tamanho da tabulação como 4 espaços.
set tabstop=4

" Utiliza espaço ao invés de tabulações.
set expandtab

" Não salva arquivos de backup.
set nobackup

" Não permite que o cursor role abaixo ou acima de um numero N de linhas ao rolar.
set scrolloff=10

" Não quebrar linhas. Permitir que as linhas longas se estendam até onde a linha vai.
set nowrap

" Destaca os caracteres correspondentes á medida que você os digita durante uma busca.
set incsearch

" Ignora letras maiúsculas durante a busca.
set ignorecase

" Sobrescreve a opção ignorecase se estiver buscando por letras maiúsculas.
"Isso permitirá que você procure especificamente por letras maiúsculas.
set smartcase

" Mostra o comando sendo executado.
set showcmd

" Mostra o modo em que você está.
set showmode

" Mostra as palavras correspondentes durante uma pesquisa.
set showmatch

" Utiliza destaque durante uma pesquisa.
set hlsearch

" Define os comandos a serem salvos no histórico, sendo 20 o número padrão
set history=1000</code></pre><p>O autocompletar no Bash é uma excelente função que salva as teclas de atalhos enquanto você digita. O Vim tem uma função semelhante chamada <em>wildmenu</em>.</p><p>Adicione as linhas a seguir para ativar a função <em>wildmenu</em>. Você verá uma lista de arquivos que correspondem ao arquivo que você está pesquisando. Você também pode ativar o preenchimento automático no Vim. </p><pre><code class="language-vimrc">" Habilita o menu de preenchimento automático ao pressionar TAB.
set wildmenu

" Faz com que o wildmenu se comporte de ,modo semelhante ao autocompletar do Bash.
set wildmode=list:longest

" Há certos arquivos que nunca gostaríamos de editar com o Vim.
" O Wildmenu ignorará arquivos com essas extensões.
set wildignore=*.docx,*.jpg,*.png,*.gif,*.pdf,*.pyc,*.exe,*.flv,*.img,*.xlsx
</code></pre><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/05/vim_wildmenu.gif" class="kg-image" alt="vim_wildmenu" width="600" height="300" loading="lazy"></figure><p>Para obter mais informações sobre um comando específico, digite <code>:help &lt;comando&gt;</code> </p><p>Exemplo:</p><pre><code>:help nocompatible
</code></pre><h1 id="como-realizar-dobramento-de-arquivos-grandes-no-vim">Como realizar dobramento de arquivos grandes no Vim</h1><p>O arquivo .vimrc pode ficar extenso. Então, é uma boa ideia organizar por seções. O Vim deixa você dobrar arquivos grandes para esconder partes do texto.</p><p>Adicione as linhas a seguir no final do seu arquivo .vimrc para organizar o arquivo em seções.</p><pre><code class="language-vimrc">" PLUG-INS ---------------------------------------------------------------- {{{

" Aqui ficam os códigos dos plug-ins

" }}}


" MAPEAMENTO --------------------------------------------------------------- {{{

" Aqui ficam os códigos de mapeamento.

" }}}


" VIMSCRIPT -------------------------------------------------------------- {{{

" Isso vai ativar o código de dobramento.
" Usa o método de marcadores para realizar o dobramento.
augroup filetype_vim
    autocmd!
    autocmd FileType vim setlocal foldmethod=marker
augroup END

" Aqui ficam mais alguns códigos de Vimscript.

" }}}


" LINHA DE STATUS ----------------------------------------------------------- {{{

" Aqui ficam os códigos da linha de status.

" }}}</code></pre><p>Salve o arquivo .vimrc com <code>:w</code> e carregue o arquivo .vimrc usando o comando <code>:source ~/.vimrc</code> para as mudanças entrarem em vigor. Agora, quando você mover o cursor para uma dobra, você pode pressionar:</p><p><code>zo</code> para abrir uma única dobra sob o cursor.</p><p><code>zc</code> para fechar a dobra sob o cursor. </p><p><code>zR</code> para abrir todos as dobras.</p><p><code>zM</code> para fechar todas as dobras.</p><figure class="kg-card kg-image-card"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/05/vim_open_close_fold.gif" class="kg-image" alt="vim_open_close_fold" width="600" height="300" loading="lazy"></figure><p>Digite <code>:help folding</code> para mais informações.</p><h1 id="como-instalar-plug-ins-no-vim"><strong>Como instalar plug-ins no Vim</strong></h1><p>Você pode instalar plug-ins no Vim para adicionar funcionalidades extras. A maioria das pessoas utiliza um gerenciador de plug-ins para tornar a instalação dos plug-ins mais fácil. </p><p>Há uma variedade de gerenciadores de plug-ins que podem ser usados. Vou mostrar como instalar e usar o gerenciador de plug-ins vim-plug.</p><p>Para instalar o plug-in vim-plug, execute o comando a seguir:</p><p>No Linux ou Mac OS:</p><pre><code class="language-bash">$ curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim</code></pre><p>No Windows com Powershell:</p><pre><code class="language-powershell">$ iwr -useb https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim |`
    ni $HOME/vimfiles/autoload/plug.vim -Force
</code></pre><p>Adicione as linhas <code>call plug#begin('~/.vim/plugged')</code> e <code>call plug#end()</code> &nbsp;na seção de plug-ins. Os plug-ins instalados serão adicionados entre as chamadas dessas funções.</p><pre><code>" PLUG-INS ---------------------------------------------------------------- {{{

call plug#begin('~/.vim/plugged')




call plug#end()

" }}}
</code></pre><p>Agora instalar os plug-ins será tão simples quanto adicionar a string <code>Plug 'username/plugin-name'</code>, que você encontrará no GitHub, entre as chamadas das funções.</p><p>É assim que faço a instalação do NERDTree e Asynchronous Lint Engine (ALE).</p><p>Adicione essas duas linhas entre as linhas <code>call plug#...</code></p><pre><code>" PLUG-INS ---------------------------------------------------------------- {{{

call plug#begin('~/.vim/plugged')


  Plug 'dense-analysis/ale'

  Plug 'preservim/nerdtree'


call plug#end()

" }}}</code></pre><p>Salve o arquivo .vimrc usando o comando <code>:w</code> e atualize o arquivo .vimrc com o comando <code>:source ~/.vimrc</code> para que as alterações façam efeito.</p><p>Agora, digite <code>:PlugInstall</code> para baixar e instalar os dois plug-ins.</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/05/vim-plug_install.png" class="kg-image" alt="vim-plug_install" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/05/vim-plug_install.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2023/05/vim-plug_install.png 1000w, https://www.freecodecamp.org/portuguese/news/content/images/2023/05/vim-plug_install.png 1268w" sizes="(min-width: 1200px) 1200px" width="1268" height="305" loading="lazy"></figure><h2 id="como-mapear-atalhos-de-teclado-no-vim">Como mapear atalhos de teclado no Vim</h2><p>Na seção de mapeamento, adicionaremos atalhos para facilitar a digitação de comandos longos. Isso reduzirá a quantidade de teclas utilizadas e o tempo de digitação, especialmente para comandos mais extensos.</p><p>A sintaxe ideal para mapeamento é a seguinte:</p><p><code>map_mode &lt;o_que_voce_digita&gt; &lt;o_que_é_executado&gt;</code></p><h3 id="modos-de-mapeamento-populares-no-vim">Modos de mapeamento populares no Vim</h3><p>Aqui estão alguns modos populares de mapeamento, os quais podem ser considerados os mais úteis e importantes:</p><ul><li><code>nnoremap</code> – Permite mapear as teclas no modo normal.</li><li><code>inoremap</code> – Permite mapear as teclas no modo de inserção.</li><li><code>vnoremap</code> – Permite mapear as teclas no modo visual.</li></ul><p>Um exemplo comum de mapeamento é associar 'jj' à tecla de Esc. Essa tecla é pressionada com frequência e está localizada no extremo do teclado. A letra 'j' está no meio do teclado, o que permite pressionar 'jj' de forma mais fácil em vez de usar a tecla Esc.</p><p>Desse modo, você pode mapear a tecla de Esc para: <code>jj</code></p><p><code>inoremap jj &lt;esc&gt;</code></p><h3 id="como-utilizar-o-mapleader-no-vim"><strong>Como utilizar o Mapleader no Vim</strong></h3><p>O Mapleader permite que você defina uma tecla não utilizada pelo Vim como a tecla <code>&lt;leader&gt;</code>. Essa tecla, em conjunto com outras teclas, permitirá a criação de novos atalhos.</p><p>A tecla de barra invertida é a tecla líder padrão, mas algumas pessoas a alteram para a vírgula – <code>","</code>. &nbsp;</p><p><code>let mapleader = "\"</code></p><p>Com a tecla líder mapeada para a barra invertida, podemos usá-la do seguinte modo:</p><p>Desative o destaque de busca pressionando <code>\\</code>.<br><code>nnoremap &lt;leader&gt;\ :nohlsearch&lt;CR&gt;</code></p><p>Aqui estão alguns mapeamentos comuns que as pessoas costumam usar. Veja os comentários acima de cada linha para entender o que cada mapeamento faz.</p><p>Adicione este código na seção de mapeamentos: </p><pre><code class="language-vimrc">" MAPEAMENTOS --------------------------------------------------------------- {{{

" Defina a barra invertida como a tecla líder.
let mapleader = "\"

" Pressione \\ para voltar à última posição do cursor.
nnoremap &lt;leader&gt;\ ``

" Pressione \p para imprimir o arquivo atual na impressora padrão em sistemas Linux.
" Veja as impressoras disponíveis: lpstat -v
" Defina a impressora padrão: lpoptions -d &lt;nome_da_impressora&gt;
" &lt;silent&gt; significa não exibir saída.
nnoremap &lt;silent&gt; &lt;leader&gt;p :%w !lp&lt;CR&gt;

" Digite jj para sair do modo inserção rapidamente.
inoremap jj &lt;Esc&gt;

" Pressione a barra de espaço para digitar o caractere : no modo de comando.
nnoremap &lt;space&gt; :

" Ao pressionar a letra o, uma nova linha será aberta abaixo da linha atual.
" Sair do modo de inserção cria uma nova linha acima ou abaixo da linha atual.
nnoremap o o&lt;esc&gt;
nnoremap O O&lt;esc&gt;

" Centralize verticalmente o cursor ao mover para a próxima palavra durante uma busca.
nnoremap n nzz
nnoremap N Nzz

" Yank do cursor até o final da linha.
nnoremap Y y$

" Mapeie a tecla F5 para executar um script Python dentro do Vim.
" Aqui, mapeia a tecla F5 para uma sequência de comandos.
" :w salva o arquivo.
" &lt;CR&gt; (carriage return) é como pressionar a tecla Enter.
" !clear executa o comando externo de limpeza da tela.
" !python3 % executa o arquivo atual com Python.
nnoremap &lt;f5&gt; :w &lt;CR&gt;:!clear &lt;CR&gt;:!python3 % &lt;CR&gt;

" É possível dividir a janela no Vim digitando :split ou :vsplit.
" Navegue nas visualizações divididas com mais facilidade pressionando CTRL+j, CTRL+k, CTRL+h, ou CTRL+l.
nnoremap &lt;c-j&gt; &lt;c-w&gt;j
nnoremap &lt;c-k&gt; &lt;c-w&gt;k
nnoremap &lt;c-h&gt; &lt;c-w&gt;h
nnoremap &lt;c-l&gt; &lt;c-w&gt;l

" Redimensione as janelas divididas usando as setas do teclado pressionando:
" CTRL+UP, CTRL+DOWN, CTRL+LEFT, ou CTRL+RIGHT.
noremap &lt;c-up&gt; &lt;c-w&gt;+
noremap &lt;c-down&gt; &lt;c-w&gt;-
noremap &lt;c-left&gt; &lt;c-w&gt;&gt;
noremap &lt;c-right&gt; &lt;c-w&gt;&lt;

" Mapeamentos específicos do NERDTree.
" Mapeie a tecla F3 para alternar entre abrir e fechar o NERDTree.
nnoremap &lt;F3&gt; :NERDTreeToggle&lt;cr&gt;

" Faça o NERDTree ignorar certos arquivos e diretórios.
let NERDTreeIgnore=['\.git$', '\.jpg$', '\.mp4$', '\.ogg$', '\.iso$', '\.pdf$', '\.pyc$', '\.odt$', '\.png$', '\.gif$', '\.db$']

" }}}
</code></pre><p>Digite <code>help: map-modes</code> para mais informações.</p><h1 id="como-adicionar-scripts-ao-vim"><strong>Como adicionar scripts ao Vim</strong></h1><p>Vimscript é uma linguagem de script que permite a criação de scripts usando variáveis, declarações de if/else e funções. Comandos automáticos esperam por eventos a serem acionados a partir de um disparador (<em>trigger</em>, em inglês).</p><pre><code class="language-vimrc">" VIMSCRIPT -------------------------------------------------------------- {{{

" Habilitar o método de marcação para dobramento de código.
augroup filetype_vim
    autocmd!
    autocmd FileType vim setlocal foldmethod=marker
augroup END

" Se o tipo de arquivo atual for HTML, configurar a indentação para 2 espaços.
autocmd Filetype html setlocal tabstop=2 shiftwidth=2 expandtab

" Se a versão do Vim for igual ou superior a 7.3, habilitar o uso de undofile.
" Isso permite desfazer alterações em um arquivo mesmo após salvá-lo.
if version &gt;= 703
    set undodir=~/.vim/backup
    set undofile
    set undoreload=10000
endif

" É possível dividir uma janela em seções usando `:split` ou `:vsplit`.
" Exibir a linha do cursor e a coluna do cursor APENAS na janela ativa.
augroup cursor_off
    autocmd!
    autocmd WinLeave * set nocursorline nocursorcolumn
    autocmd WinEnter * set cursorline cursorcolumn
augroup END

" Se estiver usando a versão GUI do Vim, definir essas opções abaixo.
if has('gui_running')

    " Definir do plano de fundo.
    set background=dark

    " Definir o tom de fundo.
    colorscheme molokai

    " Definir uma fonte personalizada instalada no seu computador.
    " Sintaxe: set guifont=&lt;nome_da_fonte&gt;\ &lt;peso_da_fonte&gt;\ &lt;tamanho&gt;
    set guifont=Monospace\ Regular\ 12

    " Mostrar mais do arquivo por padrão.
	" Ocultar a barra de ferramentas.
    set guioptions-=T

    " Ocultar a barra de rolagem do lado esquerdo.
    set guioptions-=L

    " Ocultar a barra de rolagem do lado direito.
    set guioptions-=r

    " Ocultar a barra de menu.
    set guioptions-=m

    " Ocultar a barra de rolagem inferior.
    set guioptions-=b

    " Mapear a tecla F4 para alternar a barra de menu, barra de 		ferramentas e barra de rolagem.
	" &lt;Bar&gt; é o caractere da barra vertical.
	" &lt;CR&gt; é a tecla Enter.
    nnoremap &lt;F4&gt; :if &amp;guioptions=~#'mTr'&lt;Bar&gt;
        \set guioptions-=mTr&lt;Bar&gt;
        \else&lt;Bar&gt;
        \set guioptions+=mTr&lt;Bar&gt;
        \endif&lt;CR&gt;

endif

" }}}
</code></pre><p>Leia <a href="https://learnvimscriptthehardway.stevelosh.com/">Learn Vimscript the Hard Way</a> (em inglês) para mais informações sobre o Vimscript.</p><p>Digite <code>:help autocmd</code> para mais informações sobre comandos automáticos.</p><h1 id="como-adicionar-esquemas-de-cores-no-vim"><strong>Como adicionar esquemas de cores no Vim</strong></h1><p>Você pode facilmente adicionar um esquema de cores no Vim mudando as cores do padrão. Faça uma busca por "Vim color schemes" e você encontrará muitas, muitas opções.</p><p>A instalação de um esquema de cores é simples. Basta adicionar um arquivo ao diretório: <code>&lt;esquema_de_cores&gt;.vim~/.vim/colors/</code></p><p>Vamos adicionar o conhecido esquema de cores molokai:</p><pre><code class="language-bash">$ cd ~/.vim/colors

$ curl -o molokai.vim https://raw.githubusercontent.com/tomasr/molokai/master/colors/molokai.vim
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  7558  100  7558    0     0   150k      0 --:--:-- --:--:-- --:--:--  150k
</code></pre><p>Para definir o esquema de cores, digite esse comando:</p><pre><code class="language-vimrc">:colorscheme molokai
</code></pre><h3 id="alguns-exemplos-de-esquemas-de-cores-"><strong>Alguns exemplos de esquemas de cores:</strong></h3><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/05/vim_four_colorschemes.png" class="kg-image" alt="vim_four_colorschemes" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/05/vim_four_colorschemes.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2023/05/vim_four_colorschemes.png 800w" sizes="(min-width: 720px) 720px" width="800" height="970" loading="lazy"><figcaption>Esquemas de cor: molokai, base16-tomorrow, blue, one</figcaption></figure><h1 id="como-configurar-a-linha-de-status-no-vim"><strong>Como configurar a linha de status no Vim</strong></h1><p>Você pode configurar a linha de status do Vim com informações úteis. Por exemplo, é possível configurar o tipo de arquivo, o número total de linhas no arquivo, o caminho para o arquivo, o número da coluna, o número da linha, a porcentagem de progresso no arquivo e muito mais.</p><p>Adicione esse código na seção "Linha de status":</p><pre><code class="language-vimrc">" LINHA DE STATUS ---------------------------------------------------------- {{{

" Limpa a barra de status quando o vimrc é recarregado.
set statusline=

" Lado esquerdo da barra de status.
set statusline+=\ %F\ %M\ %Y\ %R

" Utiliza um divisor para separar o lado esquerdo do lado direito.
set statusline+=%=

" Lado direito da barra de status.
set statusline+=\ ascii:\ %b\ hex:\ 0x%B\ row:\ %l\ col:\ %c\ percent:\ %p%%

" Mostra a barra de status na penúltima linha.
set laststatus=2

" }}}
</code></pre><p><code>%F</code> – Exibe o caminho completo do arquivo atual.</p><p><code>%M</code> – &nbsp;O indicador de arquivo modificado aparece enquanto o aquivo não for salvo.</p><p><code>%Y</code> – Exibe o tipo de arquivo no buffer.</p><p><code>%R</code> – Exibe o indicador de somente leitura.</p><p><code>%b</code> – Mostra o caractere ASCII/Unicode sob o cursor.</p><p><code>0x%B</code> – Mostra o caractere hexadecimal sob o cursor.</p><p><code>%l</code> – Exibe o número da linha.</p><p><code>%c</code> – Exibe o número da coluna.</p><p><code>%p%%</code> – Mostra a porcentagem da posição do cursor em relação ao topo do arquivo.</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2023/05/vim_statusline.png" class="kg-image" alt="vim_statusline" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2023/05/vim_statusline.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/size/w1000/2023/05/vim_statusline.png 1000w, https://www.freecodecamp.org/portuguese/news/content/images/2023/05/vim_statusline.png 1352w" sizes="(min-width: 1200px) 1200px" width="1352" height="344" loading="lazy"></figure><p>Digite <code>help: statusline</code> para mais informações.</p><p>Esse é o arquivo .vimrc completo.</p><pre><code class="language-vimrc">"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""               
"               
"               ██╗   ██╗██╗███╗   ███╗██████╗  ██████╗
"               ██║   ██║██║████╗ ████║██╔══██╗██╔════╝
"               ██║   ██║██║██╔████╔██║██████╔╝██║     
"               ╚██╗ ██╔╝██║██║╚██╔╝██║██╔══██╗██║     
"                ╚████╔╝ ██║██║ ╚═╝ ██║██║  ██║╚██████╗
"                 ╚═══╝  ╚═╝╚═╝     ╚═╝╚═╝  ╚═╝ ╚═════╝
"               
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""               

" Desabilitar a compatibilidade com vi, que pode causar problemas inesperados.
set nocompatible

" Habilitar a detecção do tipo de arquivo.O Vim será capaz de tentar detectar automaticamente o tipo de arquivo.
filetype on

" Habilitar plugins e carregar o plug-in correspondente ao tipo de arquivo detectado.
filetype plugin on

" Carregar um aquivo de indentação correspondente ao tipo de arquivo detectado.
filetype indent on

" Ativar o destaque de sintaxe.
syntax on

" Adiciona numeração ao lado esquerdo de cada linha.
set number

" Destaca a linha do cursor horizontalmente, diretamente abaixo dele.
set cursorline

" Destaca a linha do cursor verticalmente, diretamente abaixo dele.
set cursorcolumn

" Define o recuo como 4 espaços.
set shiftwidth=4

" Define ao tamanho da tabulação como 4 espaços.
set tabstop=4

" Utiliza espaço ao invés de tabulações.
set expandtab

" Não salvar arquivos de backup.
set nobackup

" Não permite que o cursor role abaixo ou acima de um número N de linhas ao rolar.
set scrolloff=10

" Não quebrar linhas. Permitir que as linhas longas se estendam até onde a linha vai.
set nowrap

" Destaca os caracteres correspondentes a medida que você os digita durante uma busca.
set incsearch

" Ignora letras maiúsculas durante a busca.
set ignorecase

" Sobrescreve a opção ignorecase se estiver buscando por letras maiúsculas.
"Isso permitirá que você procure especificamente por letras maiúsculas.
set smartcase

" Mostra parte do comando que você digitou na última linha da tela.
set showcmd

" Mostra o modo em que você está na última linha.
set showmode

" Mostra as palavras correspondentes durante uma pesquisa.
set showmatch

" Utiliza destaque durante uma pesquisa.
set hlsearch

" Define os comandos a serem salvos no histórico, sendo o número padrão 20
set history=1000

" Habilita o menu de preenchimento automático ao pressionar TAB.
set wildmenu

" Faz com que o wildmenu se comporte de modo semelhante ao autocompletar do Bash.
set wildmode=list:longest

" Há certos arquivos que nunca gostaríamos de editar com o Vim.
"O Wildmenu ignorará arquivos com essas extensões.
set wildignore=*.docx,*.jpg,*.png,*.gif,*.pdf,*.pyc,*.exe,*.flv,*.img,*.xlsx

" PLUG-INS ---------------------------------------------------------------- {{{

call plug#begin('~/.vim/plugged')

  Plug 'dense-analysis/ale'

  Plug 'preservim/nerdtree'

call plug#end()

" }}}

" MAPEAMENTOS --------------------------------------------------------------- {{{

" Defina a barra invertida como a tecla líder.
let mapleader = "\"

" Pressione \\ para voltar à última posição do cursor.
nnoremap &lt;leader&gt;\ ``

" Pressione \p para imprimir o arquivo atual na impressora padrão em sistemas Linux.
" Veja as impressoras disponíveis: lpstat -v
" Defina a impressora padrão: lpoptions -d &lt;nome_da_impressora&gt;
" &lt;silent&gt; significa não exibir saída.
nnoremap &lt;silent&gt; &lt;leader&gt;p :%w !lp&lt;CR&gt;

" Digite jj para sair do modo inserção rapidamente.
inoremap jj &lt;Esc&gt;

" Pressione a barra de espaço para digitar o caractere : no modo de comando.
nnoremap &lt;space&gt; :

" Ao pressionar a letra o, uma nova linha será aberta abaixo da linha atual.
" Sair do modo de inserção cria uma nova linha acima ou abaixo da linha atual.
nnoremap o o&lt;esc&gt;
nnoremap O O&lt;esc&gt;

" Centralize verticalmente o cursor ao mover para a próxima palavra durante uma busca.
nnoremap n nzz
nnoremap N Nzz

" Yank do cursor até o final da linha.
nnoremap Y y$

" Mapeie a tecla F5 para executar um script Python dentro do Vim.
" Aqui, mapeio a tecla F5 para uma sequência de comandos.
" :w salva o arquivo.
" &lt;CR&gt; (carriage return) é como pressionar a tecla Enter.
" !clear executa o comando externo de limpeza da tela.
" !python3 % executa o arquivo atual com Python.
nnoremap &lt;f5&gt; :w &lt;CR&gt;:!clear &lt;CR&gt;:!python3 % &lt;CR&gt;

" É possível dividir a janela no Vim digitando :split ou :vsplit.
" Navegue nas visualizações divididas com mais facilidade pressionando CTRL+j, CTRL+k, CTRL+h, ou CTRL+l.
nnoremap &lt;c-j&gt; &lt;c-w&gt;j
nnoremap &lt;c-k&gt; &lt;c-w&gt;k
nnoremap &lt;c-h&gt; &lt;c-w&gt;h
nnoremap &lt;c-l&gt; &lt;c-w&gt;l

" Redimensione as janelas divididas usando as setas do teclado pressionando:
" CTRL+UP, CTRL+DOWN, CTRL+LEFT, ou CTRL+RIGHT.
noremap &lt;c-up&gt; &lt;c-w&gt;+
noremap &lt;c-down&gt; &lt;c-w&gt;-
noremap &lt;c-left&gt; &lt;c-w&gt;&gt;
noremap &lt;c-right&gt; &lt;c-w&gt;&lt;

" Mapeamentos específicos do NERDTree.
" Mapeie a tecla F3 para alternar entre abrir e fechar o NERDTree.
nnoremap &lt;F3&gt; :NERDTreeToggle&lt;cr&gt;

" Faça o NERDTree ignorar certos arquivos e diretórios.
let NERDTreeIgnore=['\.git$', '\.jpg$', '\.mp4$', '\.ogg$', '\.iso$', '\.pdf$', '\.pyc$', '\.odt$', '\.png$', '\.gif$', '\.db$']

" }}}

" VIMSCRIPT -------------------------------------------------------------- {{{

" Habilitar o método de marcação para dobramento de código.
augroup filetype_vim
    autocmd!
    autocmd FileType vim setlocal foldmethod=marker
augroup END

" Se o tipo de arquivo atual for HTML, configurar a indentação para 2 espaços.
autocmd Filetype html setlocal tabstop=2 shiftwidth=2 expandtab

" Se a versão do Vim for igual ou superior a 7.3, habilitar o uso de undofile.
" Isso permite desfazer alterações em um arquivo mesmo após salvá-lo.
if version &gt;= 703
    set undodir=~/.vim/backup
    set undofile
    set undoreload=10000
endif

" É possível dividir uma janela em seções usando `:split` ou `:vsplit`.
" Exibir a linha do cursor e a coluna do cursor APENAS na janela ativa.
augroup cursor_off
    autocmd!
    autocmd WinLeave * set nocursorline nocursorcolumn
    autocmd WinEnter * set cursorline cursorcolumn
augroup END

" Se estiver usando a versão GUI do Vim, definir essas opções abaixo.
if has('gui_running')

    " Definir do plano de fundo.
    set background=dark

    " Definir o tom de fundo.
    colorscheme molokai

    " Definir uma fonte personalizada instalada no seu computador.
    " Sintaxe: set guifont=&lt;nome_da_fonte&gt;\ &lt;peso_da_fonte&gt;\ &lt;tamanho&gt;
    set guifont=Monospace\ Regular\ 12

    " Mostrar mais do arquivo por padrão.
	" Ocultar a barra de ferramentas.
    set guioptions-=T

    " Ocultar a barra de rolagem do lado esquerdo.
    set guioptions-=L

    " Ocultar a barra de rolagem do lado direito.
    set guioptions-=r

    " Ocultar a barra de menu.
    set guioptions-=m

    " Ocultar a barra de rolagem inferior.
    set guioptions-=b

    " Mapear a tecla F4 para alternar a barra de menu, barra de 		ferramentas e barra de rolagem.
	" &lt;Bar&gt; é o caractere da barra vertical.
	" &lt;CR&gt; é a tecla Enter.
    nnoremap &lt;F4&gt; :if &amp;guioptions=~#'mTr'&lt;Bar&gt;
        \set guioptions-=mTr&lt;Bar&gt;
        \else&lt;Bar&gt;
        \set guioptions+=mTr&lt;Bar&gt;
        \endif&lt;CR&gt;

endif


" }}}

" LINHA DE STATUS ---------------------------------------------------------- {{{

" Limpa a barra de status quando o vimrc é recarregado.
set statusline=

" Lado esquerdo da barra de status.
set statusline+=\ %F\ %M\ %Y\ %R

" Utiliza um divisor para separar o lado esquerdo do lado direito.
set statusline+=%=

" Lado direito da barra de status.
set statusline+=\ ascii:\ %b\ hex:\ 0x%B\ row:\ %l\ col:\ %c\ percent:\ %p%%

" Mostra a barra de status na penúltima linha.
set laststatus=2

" }}}</code></pre><h1 id="conclus-o"><strong>Conclusão</strong></h1><p>Neste artigo, vimos brevemente o que é possível personalizar no Vim.<br>Existem milhares de maneiras de personalizar e configurar um arquivo .vimrc de acordo com suas preferências.<br>Você pode até mesmo criar seus próprios plug-ins e esquemas de cores e compartilhá-los com o mundo todo.</p><p>Espero que você tenha aprendido alguns truques novos ao ler esse artigo. Então, se você usa Vim, não saia de casa sem o seu .vimrc!</p><p>A propósito, utilizei o Vim para escrever este artigo.</p><p>Siga o autor no <a href="https://github.com/brandon-wallace">Github</a> e no <a href="https://dev.to/brandonwallace">DEV.to</a></p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Guia de instalação do Vim no Windows – como executar o editor de texto Vim no PowerShell do seu PC ]]>
                </title>
                <description>
                    <![CDATA[ O Vim é um editor de código poderoso. Tão poderoso que tanto o Linux quanto o Mac o têm instalado por padrão. Mas se você estiver usando o Windows como sistema operacional, precisará instalar o Vim separadamente. Felizmente, a Microsoft torna muito fácil instalar o Vim e executá-lo no seu ]]>
                </description>
                <link>https://www.freecodecamp.org/portuguese/news/guia-de-instalacao-do-vim-no-windows-como-executar-o-editor-de-texto-vim-no-powershell-do-seu-pc/</link>
                <guid isPermaLink="false">621687fb9838eb04fbdf1388</guid>
                
                    <category>
                        <![CDATA[ Vim ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Fernando Mota Freitas ]]>
                </dc:creator>
                <pubDate>Thu, 24 Feb 2022 01:09:01 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/portuguese/news/content/images/2022/02/5f9c9b34740569d1a4ca2a64.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Artigo original:</strong> <a href="https://www.freecodecamp.org/news/vim-windows-install-powershell/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">Vim Windows Install Guide – How to Run the Vim Text Editor in PowerShell on your PC</a>
      </p><p>O Vim é um editor de código poderoso. Tão poderoso que tanto o Linux quanto o Mac o têm instalado por padrão.</p><p>Mas se você estiver usando o Windows como sistema operacional, precisará instalar o Vim separadamente.</p><p>Felizmente, a Microsoft torna muito fácil instalar o Vim e executá-lo no seu PC.</p><h2 id="como-baixar-o-vim">Como baixar o Vim</h2><p>Você pode <a href="https://www.vim.org/download.php">baixar a versão mais recente do Vim Text Editor diretamente do próprio Vim</a>.</p><p>Eles criaram um instalador autoexecutável especial, que o orienta no processo de instalação do Vim no local certo em seu disco rígido.</p><h2 id="como-instalar-o-vim">Como instalar o Vim</h2><p>Observe que, para o Windows, você tecnicamente baixará algo chamado gVim, que é uma versão do Vim que inclui uma interface gráfica de usuário básica (GUI). Você pode <a href="https://ftp.nluug.nl/pub/vim/pc/gvim82.exe">instalá-la baixando este instalador executável</a> .</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/02/signal-attachment-2020-05-07-144326_005-1.png" class="kg-image" alt="signal-attachment-2020-05-07-144326_005-1" width="508" height="253" loading="lazy"><figcaption>Uma imagem do que você verá ao tentar abrir o arquivo. Como ele é um arquivo .exe, o Windows pedirá sua permissão primeiro.</figcaption></figure><p>Depois de baixar o arquivo, basta executá-lo e você verá um assistente de instalação idêntico ao mostrado abaixo:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/02/signal-attachment-2020-05-07-144326_004.png" class="kg-image" alt="signal-attachment-2020-05-07-144326_004" width="541" height="433" loading="lazy"><figcaption>Uma captura de tela do assistente que você verá quando executar o instalador do Vim pela primeira vez</figcaption></figure><p>Eles têm uma instalação "típica" recomendada. mas se você tiver um disco rígido razoavelmente grande, não há mal nenhum em prosseguir com a instalação de tudo escolhendo a opção "completo":</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/02/signal-attachment-2020-05-07-144326_003.png" class="kg-image" alt="signal-attachment-2020-05-07-144326_003" width="534" height="418" loading="lazy"><figcaption>Uma captura de tela do instalador do Vim, onde você pode escolher quais partes do Vim você deseja instalar.</figcaption></figure><h2 id="como-executar-o-vim-no-powershell">Como executar o Vim no PowerShell</h2><p>Então, depois de instalar o Vim, você poderá iniciá-lo no prompt de comando do Windows.</p><p>Observe que, a partir de 2020, o PowerShell tem todas as mesmas funcionalidades do CMD, além de muito mais. Eu recomendo usar o PowerShell para tudo.</p><p>Você pode abrir o PowerShell na barra de menus do Windows digitando "powershell" no campo de pesquisa na barra inicial.</p><p>O Windows abrirá o PowerShell e você receberá um prompt de comando semelhante a este:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/02/signal-attachment-2020-05-07-144326_001-1.png" class="kg-image" alt="signal-attachment-2020-05-07-144326_001-1" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/02/signal-attachment-2020-05-07-144326_001-1.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/02/signal-attachment-2020-05-07-144326_001-1.png 883w" sizes="(min-width: 720px) 720px" width="883" height="742" loading="lazy"><figcaption>Uma captura de tela do prompt do PowerShell do Windows.</figcaption></figure><p>Veja aqui como executar o Vim quando estiver no PowerShell. Tudo o que você precisa fazer é digitar "vim" e pressionar Enter. Isso abrirá o Vim. Uma vez que o Vim estiver aberto, isto é o que você deve ver:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/portuguese/news/content/images/2022/02/signal-attachment-2020-05-07-144326_002.png" class="kg-image" alt="signal-attachment-2020-05-07-144326_002" srcset="https://www.freecodecamp.org/portuguese/news/content/images/size/w600/2022/02/signal-attachment-2020-05-07-144326_002.png 600w, https://www.freecodecamp.org/portuguese/news/content/images/2022/02/signal-attachment-2020-05-07-144326_002.png 858w" sizes="(min-width: 720px) 720px" width="858" height="751" loading="lazy"><figcaption>Uma captura de tela do Vim quando você o abre pela primeira vez.</figcaption></figure><p>Parabéns – agora você tem o Vim instalado.</p><h2 id="como-executar-o-vim-dentro-do-vs-code">Como executar o Vim dentro do VS Code</h2><p>Se você já está usando o VS Code, e quer a grande velocidade do Vim sem perder a funcionalidade do VS Code, tenho boas notícias. É possível executar uma experiência semelhante ao Vim diretamente no VS Code.</p><p><a href="https://marketplace.visualstudio.com/items?itemName%3Dvscodevim.vim">Aqui está um plug-in do Vim para o VS Code</a> que o ajudará a fazer isso. No momento em que escrevi este artigo, o plug-in já havia sido instalado quase 2 milhões de vezes.</p><h2 id="como-aprender-a-usar-o-vim-corretamente">Como aprender a usar o Vim corretamente</h2><p>O Vim é um editor de código poderoso e você precisará de muita prática para se acostumar com ele.</p><p>Aqui estão alguns tutoriais do Vim que realmente ajudarão você a entender rapidamente o básico e fazer seus dedos voarem rapidamente.</p><p>Para começar, uma maneira que o Vim é diferente de outros editores de código é que o Vim tem "modos". Aqui estão <a href="https://www.freecodecamp.org/news/vim-editor-modes-explained/">todos os modos do Vim explicados, com exemplos</a> (texto em inglês).</p><p>O Vim pode ser intimidante. Há muito o que aprender. Mas este guia mostrará <a href="https://www.freecodecamp.org/news/how-not-to-be-afraid-of-vim-anymore-ec0b7264b0ae/">como não ter mais medo do Vim</a> (texto em inglês).</p><p>Se você já estiver usando o VS Code e quiser mudar completamente para o Vim, <a href="https://www.freecodecamp.org/news/vim-for-people-who-use-visual-studio-code/">este artigo explicará como você pode fazer isso</a> (texto em inglês).</p><p>E <a href="https://www.freecodecamp.org/news/7-vim-tips-that-changed-my-life/">aqui estão 7 dicas do Vim que mudaram a vida do criador do #100DaysOfCode, Alex Kallaway</a> (texto em inglês). Neste artigo, ele não apenas explica isso, mas mostra demonstrações dessas dicas em ação.</p><h2 id="vim-aprenda-viva-ame-">Vim: aprenda, viva, ame.</h2><p>Nos 30 anos desde que Bram Moolenaar criou o Vim, sua influência se espalhou por toda parte. Ainda hoje, o projeto Vim é mantido ativamente e melhorando constantemente.</p><p>Eu conheci tantos desenvolvedores ao longo dos anos que botam a mão no fogo pelo Vim.</p><p>Espero que este guia tenha ajudado você a executar o Vim no seu PC com Windows. E espero que esses outros tutoriais que compartilhei com você aqui ajudem você a ir do zero à prática nos próximos meses.</p><p>A chave é continuar praticando e não desanimar com a quantidade de atalhos a serem lembrados no Vim. Eventualmente, tudo isso se tornará memória muscular, e você estará voando de um arquivo para outro, acabando com qualquer código, feito um exterminador.</p><p>Não há sensação tão legal quanto a de ser capaz de entrar em uma base de código e começar imediatamente a fazer alterações sem sequer pegar um mouse ou trackpad. Esse é o poder que o Vim promete e entrega com sobras.</p> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
