You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
171 lines
8.5 KiB
171 lines
8.5 KiB
11 months ago
|
<!DOCTYPE html>
|
||
|
<html lang="en">
|
||
|
<head>
|
||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||
|
|
||
|
<!-- Enable responsiveness on mobile devices-->
|
||
|
<!-- viewport-fit=cover is to support iPhone X rounded corners and notch in landscape-->
|
||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1, viewport-fit=cover">
|
||
|
|
||
|
<title>Julio Biason .Me 4.3</title>
|
||
|
|
||
|
<!-- CSS -->
|
||
|
<link rel="stylesheet" href="https://blog.juliobiason.me/print.css" media="print">
|
||
|
<link rel="stylesheet" href="https://blog.juliobiason.me/poole.css">
|
||
|
<link rel="stylesheet" href="https://blog.juliobiason.me/hyde.css">
|
||
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=PT+Sans:400,400italic,700|Abril+Fatface">
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
</head>
|
||
|
|
||
|
<body class=" ">
|
||
|
|
||
|
<div class="sidebar">
|
||
|
<div class="container sidebar-sticky">
|
||
|
<div class="sidebar-about">
|
||
|
|
||
|
<a href="https://blog.juliobiason.me"><h1>Julio Biason .Me 4.3</h1></a>
|
||
|
|
||
|
<p class="lead">Old school dev living in a 2.0 dev world</p>
|
||
|
|
||
|
|
||
|
</div>
|
||
|
|
||
|
<ul class="sidebar-nav">
|
||
|
|
||
|
|
||
|
<li class="sidebar-nav-item"><a href="/">English</a></li>
|
||
|
|
||
|
<li class="sidebar-nav-item"><a href="/pt">Português</a></li>
|
||
|
|
||
|
<li class="sidebar-nav-item"><a href="/tags">Tags (EN)</a></li>
|
||
|
|
||
|
<li class="sidebar-nav-item"><a href="/pt/tags">Tags (PT)</a></li>
|
||
|
|
||
|
|
||
|
</ul>
|
||
|
</div>
|
||
|
</div>
|
||
|
|
||
|
|
||
|
<div class="content container">
|
||
|
|
||
|
<div class="post">
|
||
|
<h1 class="post-title">14.01. Plugins - Vundle</h1>
|
||
|
<span class="post-date">
|
||
|
2015-12-22
|
||
|
|
||
|
</span>
|
||
|
<p>Essa é a parte em que começamos a mexer ao redor do VIM.</p>
|
||
|
<span id="continue-reading"></span>
|
||
|
<p>Vamos começar a ver como adicionar funcionalidades no VIM com plugins. E, para
|
||
|
isso, vamos ver Vundle, que é um gerenciador de plugins.</p>
|
||
|
<p>A pergunta que você deveria estar se fazendo agora é "E por que usar o
|
||
|
Vundle?". Na verdade, esta pergunta tem duas respostas:</p>
|
||
|
<p>A primeira é: Apesar de ser extremamente fácil de adicionar um plugin no VIM --
|
||
|
normalmente é uma questão de descompactar um arquivo dentro do diretório
|
||
|
<code>$HOME/.vim</code> -- a parte chata é manter os scripts atualizados (e ficar preso à um
|
||
|
arquivo compactado) e removê-los depois, se você encher o saco de um.</p>
|
||
|
<p>A segunda é: Vundle não é o único gerenciador de plugins para VIM, mas consegue
|
||
|
instalar plugins por conta própria (Pathogen requer que você baixe os plugins
|
||
|
manualmente, assumindo depois o controle para manter atualizado); a desvantagem
|
||
|
é que Vundle requer que os scripts tenham uma determinada estrutura de arquivos
|
||
|
e diretórios, mas praticamente todos os scripts hoje utilizam esta estrutura.</p>
|
||
|
<p>Então vamos lá, instalar o Vundle:</p>
|
||
|
<p>Primeiro, você deve baixar o plugin em si. Para isso, você tem que ter o Git
|
||
|
instalado e executar:</p>
|
||
|
<pre style="background-color:#2b303b;color:#c0c5ce;"><code><span>git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
|
||
|
</span></code></pre>
|
||
|
<p>Simplesmente, você está copiando o repositório do vundle para um diretório do
|
||
|
próprio VIM. Até aqui nenhuma surpresa, exceto que o diretório de plugins é
|
||
|
<code>$HOME/.vim/plugin</code> (ou <code>~/.vim/plugin</code>) e o clone colocou no diretório
|
||
|
<code>~/.vim/bundle</code>. Ou seja, o Vundle não está ativo como um plugin do VIM (ainda).
|
||
|
O Vundle faz isso de propósito, para que os scripts instalados com o Vundle não
|
||
|
se misturem com os plugins instalados manualmente.</p>
|
||
|
<p>A seguir, é preciso ativar o Vundle. Para isso, nós vamos adicionar o diretório
|
||
|
do Vundle no path do VIM e chamar o script de inicialização. Para isto,
|
||
|
adicione as seguintes linhas no seu vimrc:</p>
|
||
|
<pre data-lang="vim" style="background-color:#2b303b;color:#c0c5ce;" class="language-vim "><code class="language-vim" data-lang="vim"><span style="color:#96b5b4;">set</span><span> rtp+</span><span style="color:#b48ead;">=~</span><span style="color:#96b5b4;">/.vim/</span><span>bundle</span><span style="color:#96b5b4;">/vundle/
|
||
|
</span><span>call </span><span style="color:#8fa1b3;">vundle#rc</span><span>()
|
||
|
</span></code></pre>
|
||
|
<p>Explicando: "rtp" é a forma curta de "runtimepath", que identifica os
|
||
|
diretórios onde o VIM irá procurar scripts, se preciso. No caso, estamos
|
||
|
adicionando o diretório do Vundle, que clonamos anteriormente. A seguir é
|
||
|
chamado o script de inicialização do Vundle.</p>
|
||
|
<p>Pronto! Agora o Vundle está instalado.</p>
|
||
|
<p>A questão é: E agora que o Vundle está instalado, "faz o que?"</p>
|
||
|
<p>O Vundle tem mais comandos disponíveis, entre eles <code>:Plugin "{bundle}"</code><sup class="footnote-reference"><a href="#1">1</a></sup>. Este
|
||
|
comando adiciona um bundle/plugin/script na lista de bundles/plugins/scripts
|
||
|
gerenciados pelo Vundle. A única coisa que esse comando faz é adicionar o
|
||
|
bundle na lista; ele não vai instalar o bundle ainda, ele não vai remover o
|
||
|
bundle, ele não vai atualizar o bundle. Apenas adicionar na lista.</p>
|
||
|
<p>O parâmetro do comando, {bundle} pode ser:</p>
|
||
|
<ul>
|
||
|
<li>
|
||
|
<p>O nome de um plugin conforme listado no repositórios de scripts do VIM;
|
||
|
apenas uma string (por exemplo, <code>:Plugin "vundle"</code> para instalar este script
|
||
|
(que é a descrição do Vundle nos repositórios de script);</p>
|
||
|
</li>
|
||
|
<li>
|
||
|
<p>O nome de um plugin no Github, no formato "{usuário}/{repositório}", que você
|
||
|
pode ver na parte superior de qualquer repositório (por exemplo, <code>:Bundle " gmarik/vundle"</code> para instalar o Vundle a partir do repositório -- que tende a
|
||
|
ser atualizado com maior frequência);</p>
|
||
|
</li>
|
||
|
<li>
|
||
|
<p>Uma URL, que pode ser clonada com Git (por exemplo, <code>:Plugin "https://github.com/gmarik/vundle"</code> para fazer o mesmo que acima.</p>
|
||
|
</li>
|
||
|
</ul>
|
||
|
<p>Uma vez que você tenha a lista de plugins que você quer no sistema, você pode
|
||
|
instalar todos usando <code>:PluginInstall</code>; se quiser remover um plugin, você
|
||
|
simplesmente o deixa fora da lista de plugins desejados e executa <code>:PluginClean</code>;
|
||
|
e, para atualizar os plugins que estão instalados, <code>:PluginUpdate.</code></p>
|
||
|
<p>Acho que você já percebeu que o problema de se manter uma lista de plugins
|
||
|
manualmente é meio chato: Toda vez que você quiser verificar se há atualizações
|
||
|
dos plugins, você tem que entrar a lista inteira; se você esquecer de um plugin
|
||
|
e fizer <code>:PluginClean</code> irá remover esse plugin. Para evitar essa complicação,
|
||
|
você pode adicionar os comandos Plugin diretamente no seu vimrc<sup class="footnote-reference"><a href="#2">2</a></sup>. Assim, cada
|
||
|
vez que você usar qualquer comando do Vundle, você não precisa se preocupar em
|
||
|
lembrar de todos os plugins instalados.</p>
|
||
|
<p>E, como última dica, fica o seguinte: Logo após a linha do "call vundle#rc()",
|
||
|
adicione</p>
|
||
|
<pre data-lang="viml" style="background-color:#2b303b;color:#c0c5ce;" class="language-viml "><code class="language-viml" data-lang="viml"><span>Plugin </span><span style="color:#a3be8c;">'gmarik/vundle'
|
||
|
</span></code></pre>
|
||
|
<p>.. que nada mais é que o repositório que fizemos o clone logo no começo; desta
|
||
|
forma, quando você fizer um <code>:PluginUpdate</code>, o próprio Vundle poderá ser
|
||
|
atualizado com a última versão disponível.</p>
|
||
|
<p><sup class="footnote-reference"><a href="#1">1</a></sup> Lembram que eu falei que plugins poderiam adicionar novos comandos e que
|
||
|
estes teriam pelo menos a primeira letra em maiúsculas? Pois é...</p>
|
||
|
<p><sup class="footnote-reference"><a href="#2">2</a></sup> Lembre-se também que o vimrc é um arquivo executado em modo Ex e o modo Ex
|
||
|
nada mais é que o modo de comando sem precisar colocar <code>:</code> na frente de cada
|
||
|
comando.</p>
|
||
|
<div>
|
||
|
|
||
|
<div style="float:left">
|
||
|
<< <a href="./13-tags">Tags</a>
|
||
|
</div>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
<div style="float:right">
|
||
|
<a href="./14-02-airline">Plugins - Airline</a> >>
|
||
|
</div>
|
||
|
|
||
|
</div>
|
||
|
|
||
|
</div>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
</div>
|
||
|
|
||
|
</body>
|
||
|
|
||
|
</html>
|