Posso apagar o colchete aberto e excluir automaticamente o colchete de fechamento no vim?

3

Aqui está o texto:

It is the text outside the bracket. {I am some text in the backet.} This is another text outside the bracket.

Eu quero remover o {} dentro do texto. Então, eu f{ e x e f} então x novamente .... existe algum método fácil para mim o excluir o suporte? Obrigado.

    
por Ted Wong 15.02.2012 / 09:03

3 respostas

4

coloque o cursor no bloco

f {

bloco interno yank

y i {

selecione o bloco inteiro

v a {

sobrescreve o bloco selecionado

p

Nota: Funciona no bloqueio de várias linhas.

    
por 15.02.2012 / 17:06
0

Bem, dependendo do "fácil", mas

:s/{\([^}]*\)}//

Use com modificadores em ordem regular para lidar com várias substituições por linha, etc.

Em um único par de colchetes, isso é mais trabalho do que o seu exemplo manual, mas, se for necessário, muitas substituições economizam tempo.

EDIT: a diferença entre isso e procurar por todos os colchetes e removê-los ( :s/[{}]// ) é que isso só remove os colchetes, mas com algumas peculiaridades (aninhamento, como mencionei).

"O que estou tentando fazer?" quase sempre vale a pena explicar em uma pergunta para obter melhores respostas.

    
por 15.02.2012 / 09:54
0

Aqui está outro modo, e como a resposta de kev, ele funciona em blocos de várias linhas e respeita chaves de aninhamento.

Mova o cursor para o bloco:

f {

Ir para o outro lado:

%

Excluir a chave no final:

x

Volte para onde você começou (são backticks):

' '

Exclua a cinta no começo:

x

Aqui está tudo:

f { % x ' ' x

    
por 17.02.2012 / 17:34

Tags