VI - Colar algo na primeira posição/caractere de uma sucessão de linhas

VI - Colar algo na primeira posição/caractere de uma sucessão de linhas

Gostaria de arrancar um caractere e colá-lo na primeira posição da sucessão de linhas. Por exemplo, preciso adicionar um “#” na frente de 7 linhas de um arquivo.

Alguém pode me ajudar?

Responder1

Depende muito de como você está ligando vi. Se for realmente original-vi, então você poderia fazer isso

  • digitando ylpara "arrancar" um caractere começando na posição do cursor, indo uma célula para a direita.
  • movendo o cursor para a primeira linha onde deseja colocar o texto
  • digitando repetidamente 0PEnter, percorrendo as sete linhas.

No vi original, você só poderia afetar um intervalo de linhas usandoexmodo. Oexmode of viaceita um intervalo, mas o comando análogo

:1,7P

não fariaputapersonagem, mas tente fazer algo comlinhas. Em vez disso, usandoexmodo, você faria umsubstituto, por exemplo,

:1,7s/^/X/

mas não há comovalor de registro(o(s) personagem(s) que vocêarrancado) a ser usado na substituição.

Leitura adicional:

Responder2

Nota: esta resposta funciona apenas para VIM, não para VI.

Você pode arrancá-lo em uma coluna:

  1. Iniciando no modo normal (não inserir).
  2. Vá para a primeira linha e coluna (onde deseja inserir o texto).
  3. Pressione Ctrl+ Vpara entrar no modo de seleção vertical.
  4. Ao selecionar todas as linhas na frente das quais deseja colar seu texto, pressione Shift+ I.
  5. Agora você pode
    1. cole seu texto arrancado com Ctrl+ R, 0(ou outro registro).
    2. ou escreva qualquer texto.
  6. Ao terminar, pressione Esc, e o mesmo texto aparecerá em todas as linhas selecionadas.

Observação lateral: você também pode fazer suas perguntas sobre Vi(m) em:vi.stackexchange.com

informação relacionada