Como faço para obter Vim para colocar automaticamente terminando aparelho?

votos
35

Durante a edição de .scmarquivos que seria ótimo se Vim iria colocar automaticamente a chave terminando )assim que começar (. Como eu faço isso?

Publicado 19/05/2009 em 16:24
fonte usuário
Em outras línguas...                            


11 respostas

votos
35

Você pode mapear a chave de abertura ao seu gosto:

:imap ( ()<left>
Respondeu 19/05/2009 em 16:26
fonte usuário

votos
31

Tente usar AutoClose plugin.

Respondeu 19/05/2009 em 16:39
fonte usuário

votos
13

A resposta mais simples é incluir um mapa. Por exemplo.:

:inoremap ( ()<left>

O problema é que você precisa adicionar uma entrada para cada símbolo que deseja encerrada automaticamente ( '{', '[' '"', etc). Além disso, plugins são normalmente mais inteligente, oferecendo coisas como detectar o 'fechamento' caráter e não repeti-lo.

O problema com a solução acima e a maioria dos plugins, é que eles tendem quebrar a seqüência de desfazer ( Gundo alguém?), Como explicado em : ajuda ins-especial-especial .

Aqui está a lista de plugins que fazem o que você perguntar (a partir vimtips ):

  • delimitMate por Israel Chauca Fuentes (configurável, e não quebra undo / redo / repetir, mas - quebrar iabbr) também no GitHub
  • AutoClose por Karl Guertin (auto-fecha caracteres codificados específicos, mas não quebra undo / redo / repetição)
  • AutoClose por Thiago Alves (configurável, mas quebra undo / redo / repetição)
  • auto-pares pares Auto por Miao Jiang (configurável, mas breaks undo / redo / repetição)
  • ClosePairs por Edoardo Vacchi (configurável, mas breaks undo / redo / repetição)
  • smartinput por Kana Natsuno (configurável, mas quebra undo / redo / repetição)

Além vimtips , há outra boa explicação sobre a questão na web.

Respondeu 21/01/2013 em 14:00
fonte usuário

votos
11

Eu precisava de um também, e eu já tentei alguns dos plug-ins:

AutoClose, http://www.vim.org/scripts/script.php?script_id=1849 , é um pouco agressivo.

pares simples, http://www.vim.org/scripts/script.php?script_id=2339 , depende Python. Se você estiver em Linux não é um problema, mas no Windows pode ser um problema para corresponder à versão Vim para o interpretador Python que você tem.

Meu conselho seria ClosePairs, que você pode encontrar em http://www.vim.org/scripts/script.php?script_id=2373 que tem trabalhado perfeitamente para mim. É simples e útil.

Respondeu 19/05/2009 em 22:38
fonte usuário

votos
8

Há muitas dicas e plugins sobre o assunto. Ter um olhar para a entrada relevante no sítio vimtips.

Respondeu 19/05/2009 em 17:33
fonte usuário

votos
5

Eu estou usando no momento auto-pares e ele funciona muito bem.

As questões da quebra do plugin undo / redo / repetição parecem persistir entre alguns dos plugins listados acima, mas eu não acho que é um grande problema (bem, pelo menos não para mim no momento).

Apenas uma ressalva, porém, eu não era capaz de usar: helptags para gerar o arquivo de ajuda com este plugin como no momento da escrita deste.

Respondeu 27/07/2013 em 19:09
fonte usuário

votos
3

Confira este novo plugin: vim-autoclose por Townk . O mencionado anteriormente AutoClose era agressivo, às vezes se comportando de uma maneira indesejável.

Respondeu 24/09/2012 em 18:14
fonte usuário

votos
1

https://github.com/vim-scripts/Auto-Pairs

Testado este plugin para refazer undu. 2013 Ele simplesmente funciona. Também com modo de python plugin.

Respondeu 13/03/2013 em 22:23
fonte usuário

votos
1

Você pode tentar baixar o seguinte plug-in AutoClose: Inserções combinando suporte, paren, cinta ou citação

Respondeu 23/08/2012 em 04:56
fonte usuário

votos
1

Há um problema com o uso desse (via IMAP ou um dos scripts). Você não será capaz de repetir a edição completa, usando o .comando.

e.g. (foo) with . only gets you foo, without the brackets.

Ele funciona muito bem se você inserir os suportes normalmente, como dois caracteres.

Respondeu 21/05/2009 em 19:10
fonte usuário

votos
0

Há um novo plug-in por Cohama:

lexima.vim( Github )

(Ainda não em vim.org)

Este plugin suporta o .comando!
Afaik, este é o único plugin de apoio a este.

Também a seqüência de desfazer / refazer funciona.

Respondeu 03/08/2015 em 08:39
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more