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

74 lines
2.5 KiB

6 years ago
+++
title = "14.06. Plugins - Auto-Pairs"
6 years ago
date = 2015-12-22
weight = 3590
6 years ago
+++
Essa é a parte em que o VIM fecha as coisas pra você.
<!-- more -->
O sexto plugin da lista de plugins que eu vou falar é
[Auto-Pairs](https://github.com/jiangmiao/auto-pairs). Como de costume, para
instalar o plugin pelo Vundle:
```viml
Plugin "jiangmiao/auto-pairs"
```
Uma vez instalado o plugin, você verá que cada `'`, `"`, `(`, `[` e `{` irá,
automagicamente, gerar o seu respectivo `'`, `"`, `)`, `]` e `}`. Simples assim.
Entretanto, Auto-Pairs não funciona bem com o modo visual (se você já usou
TextMate ou Sublime Text, deve ter percebido que se você usar uma das
combinações acima com uma área selecionada, o editor vai "circular" a área
selecionada com o par indicado). O que existe é `[Alt]e` em modo de inserção que
faz a troca rápida entre o caractere de fechamento de pair com a próxima
palavra.
Por exemplo, se você tiver
```
''auto
```
... com o cursor posicionado entre as duas aspas e usar `[Alt]e`, você irá ficar com
```
'auto'
```
Ainda, o Auto-pairs tem um controle para "pular" sobre os caracteres de
fechamento já existentes. Se ele adicionar um ")" (que deve ficar antes do
cursor), quando você pressionar ")" no seu teclado, ao invés de adicionar mais
um ")", o cursor irá pular o ")" existente.
Embora isso pareça bom, em certos casos pode ser um problema. Por exemplo, caso
você tenha o seguinte trecho de código:
```javascript
$(function () {
$('#button').on('click', function () {
})
```
Se você tentar fechar a função interna, o Auto-Pairs irá, na verdade, saltar
para o fechamento da função externa, efetivamente "proibindo" que você feche as
funções corretamente. Soluções são:
* Fechar a função externa de novo, forçando o que era para encerrar a função
externa em encerramento da função interna (depois você pode alinhar as duas
novamente usando o modo visual e `=` em modo normal);
* Copiar e colar o fechamento da função externa;
* Desligar o "salto" de elementos de fechamento com `:let g:AutoPairsFlyMode = 0`
(e, se você realmente preferir que o salto nunca seja feito, pode adicionar
esta linha no seu vimrc);
* Desligar temporariamente o Auto-Pairs com `[Alt]p` em modo de inserção (usar
`[Alt]p` novamente irá reativar o Auto-Pairs).
{{ chapters(prev_chapter_link="./14-05-tabular", prev_chapter_title="Plugins - Tabular", next_chapter_link="./14-07-syntastic", next_chapter_title="Plugins - Syntastic") }}