Como este comando vim funciona ': g / # / + 1t.'

5

Eu estava jogando vimgolf (muito viciante por sinal) e não consigo entender uma das soluções para esse desafio link

O desafio é converter este texto:

Make the pairs of lines match up by making each second line same as first:

# Appending text:
The name "Vim" is an acronym for "Vi IMproved"
The name "Vim" is an acronym for

# Editing text:
Vim is a text editor originally released by Bram Moolenaar in 1991 for the Amiga
Trivia: Vim is a text editor released by Bram Moolenaar in 1991 for the Amiga

# Deleting text:
Vim has a vi compatibility mode
Vim has a vi compatibility mode but when not in this mode Vim has many enhancements over vi

para isso:

Faça os pares de linhas correspondentes, tornando cada segunda linha igual à primeira:

# Appending text:
The name "Vim" is an acronym for "Vi IMproved"
The name "Vim" is an acronym for "Vi IMproved"

# Editing text:
Vim is a text editor originally released by Bram Moolenaar in 1991 for the Amiga
Vim is a text editor originally released by Bram Moolenaar in 1991 for the Amiga

# Deleting text:
Vim has a vi compatibility mode
Vim has a vi compatibility mode

A minha pergunta é como funciona a segunda linha desta solução:

:g/#/+2d<CR>:<Up><BS><BS>1t.<CR>ZZ

e pela segunda linha eu quero dizer :g/#/+1t.

    
por Ali 13.12.2011 / 16:39

1 resposta

4

Como você já deve saber: g / # / executa um comando para todas as linhas contendo #, que são os tópicos dos diferentes desafios.

Agora, como sua primeira linha excluiu a linha "errada", a segunda apenas copia a outra

Você está na linha #, move uma linha à frente (+1) e a copia (t) para a linha atual (.)

Que deixa 2 linhas idênticas.

    
por 13.12.2011 / 20:09

Tags