Inserir colchete esquerdo automaticamente no Vim

Inserir colchete esquerdo automaticamente no Vim

Estou tentando codificar algum Objective-C no Vim e uma coisa que estou perdendo no Xcode é a capacidade de inserir automaticamente o colchete esquerdo correspondente.

Diga se eu tenho o seguinte texto:

NSString *string = [NSString alloc] init

e insiro ']' no final da linha, quero que seja concluído para:

NSString *string = [[NSString alloc] init]

Alguma ideia?

Responder1

Esse é um recurso interessante.

Além de usarCercar, não conheço uma solução exata.

Com surround, começando com o cursor em tin init: NSString *string = [NSString alloc] init

  1. vpara entrar no modo visual
  2. F[para selecionar tudo até o primeiro[
  3. s]rodeá-lo de[]

vF[s]pode ser entediante no longo prazo, na ausência de uma solução melhor/mais inteligente, você poderia fazer um mapeamento idiota como:

inoremap ]] vF[s]

Responder2

Este plug-inpode ser o que você está procurando. Ainda não experimentei direito, mas parece funcionar.

Por exemplo, onde |está o cursor:

"foo|" becomes "[foo |]" after ] is pressed.
"foo bar|" becomes "[foo bar]|"
"foo: bar|" becomes "foo: [bar |]"
"foo bar: baz|" becomes "[foo bar: baz]|"

Certas palavras-chave úteis também são agrupadas de forma inteligente

informação relacionada