Administração de Linux
medium

Administração de Linux Question #019e3987

Question Statement
Administração de Linux
#vi
#yank
#yy
#buffer
#copy-line
Medium

No editor vi, qual dos seguintes comandos copiará a linha atual para o buffer do vi?

A

c

B

cc

C

1c

D

yy

Correct
E

1y

Official Explanation / Community Explanations

O comando yy (ou Y) no vi copia (yank) toda a linha atual para o buffer do vi. Este é o comando padrão para copiar uma linha no modo normal do vi.

Como funciona

No vi, o operador y (yank) copia o texto para um buffer sem apagá-lo. Quando seguido por um movimento, ele copia do cursor até o alvo do movimento. O comando yy é um caso especial que copia toda a linha atual, equivalente a y_ ou Y (se Y não estiver remapeado). O conteúdo do buffer pode então ser colado com p (após o cursor) ou P (antes do cursor).

Por que o valor correto está certo

  • yy: Este é o comando correto. Ele copia a linha atual para o buffer. O prefixo numérico 1 é opcional, então 1yy também funciona, mas yy é a forma padrão.

Por que os valores incorretos estão errados

  • c: O comando c é o operador de alteração (change). Ele apaga o texto e entra no modo de inserção. Não copia.
  • cc: O comando cc altera (apaga e insere) a linha atual. Não copia.
  • 1c: Este é um comando de alteração com um prefixo de contagem. Ele altera uma linha (a linha atual) apagando-a e entrando no modo de inserção. Não copia.
  • 1y: Embora 1y copie uma linha (a linha atual) se seguido por um movimento, 1y sozinho é incompleto. No vi, 1y sem um movimento não é um comando válido; ele aguardaria um movimento. A forma correta é yy ou 1yy.