VI - Pegar algo en la primera posición/carácter de una sucesión de líneas

VI - Pegar algo en la primera posición/carácter de una sucesión de líneas

Me gustaría tirar de un carácter y pegarlo en la primera posición de la sucesión de líneas. Por ejemplo, necesito agregar un "#" al frente de 7 líneas de un archivo.

¿Puede ayudarme alguien?

Respuesta1

Depende en gran medida de cómo lo llames vi. Si es realmente original-vi, entonces puedes hacer esto

  • escribiendo ylpara "tirar" de un carácter comenzando en la posición del cursor, yendo una celda hacia la derecha.
  • moviendo el cursor a la primera línea donde desea colocar el texto
  • escribiendo repetidamente 0PEnter, repasando las siete líneas.

En original-vi, solo podías afectar un rango de líneas usandoexmodo. ElexEl modo de viacepta un rango, pero el comando análogo

:1,7P

no lo haríaputapersonaje, pero intenta hacer algo conlíneas. Más bien, usandoexmodo, harías unsustituto, p.ej,

:1,7s/^/X/

pero no hay manera de quevalor de registro(el personaje(s) que ustedtirado) que se utilizará en la sustitución.

Otras lecturas:

Respuesta2

Nota: esta respuesta funciona solo para VIM, no para VI.

Puedes tirarlo en una columna de la siguiente manera:

  1. Comenzando en modo normal (no insertar).
  2. Vaya a la primera fila y columna (donde desea insertar el texto).
  3. Presione Ctrl+ Vpara ingresar al modo de selección vertical.
  4. Cuando haya seleccionado todas las líneas delante de las cuales desea pegar su texto, presione Shift+ I.
  5. Ahora puedes
    1. pegue el texto extraído con Ctrl+ R, 0(u otro registro).
    2. o escribir cualquier texto.
  6. Cuando termine, presione Escy aparecerá el mismo texto en todas las líneas seleccionadas.

Nota al margen: también puedes hacer tus preguntas sobre Vi(m) en:vi.stackexchange.com

información relacionada