¿Cómo aplico un comando a todas las líneas?

19

Si quiero sangrar todas las líneas de un documento, puedo escribir >Gpara aplicarlo a la línea actual y a continuación, seguido de y >ggpara aplicarlo a las líneas de arriba.

¿Hay alguna combinación que pueda usar para aplicar >a todas las líneas a la vez?

drs
fuente

Respuestas:

19

Está buscando el :>comando y un rango de 1,$( %para abreviar) para todo el archivo.

:%>

Para más ayuda ver:

:h :>
:h :range
Peter Rincker
fuente
55
Debido al título de esta pregunta ("aplicar un comando a todas las líneas"), creo que vale la pena señalar que el ejemplo en la pregunta menciona al operador en modo Normal >, mientras que esta respuesta usa el comando en modo Comando :>. Estos no son, estrictamente hablando, lo mismo. Que tengan el mismo nombre debe considerarse una coincidencia; no asuma que puede intercambiar operadores y comandos en general. Por ejemplo, el gUoperador convierte el texto en mayúsculas, pero no:%gU es un comando válido para aplicar lo mismo a todo el búfer.
tommcdo
7

Una forma de sangrar todas las líneas en un documento:

:%>
usuario21497
fuente
3

Sin salir del modo normal, simplemente puede hacer:

gg>G
romainl
fuente
2
La desventaja aquí es que pierdes tu posición en el archivo
TankorSmash
Todas las otras respuestas comparten esa desventaja y el OP no mencionó "respetar la posición del cursor" como un requisito.
romainl
1
<co> se puede usar para volver a su posición anterior @ la solución de romainl requiere que regrese dos veces, mientras que la otra solo requiere regresar una vez
Brett Y
Seguramente puede apreciar el valor de mantener su lugar, y cómo una respuesta que mantenga esa posición sería valiosa.
TankorSmash
1
Por eso no se está rechazando. Es simplemente una nota que dice que hay una mejor opción en algún lugar y que deberían seguir buscando. Por ejemplo, en un sitio de programación SE, el código descuidado que resuelve el problema resuelve el problema, pero aún así esperaría encontrar otra solución que resuelva el problema y se vea bien.
TankorSmash
3

Otra opción que aún no se ha mencionado:

:g/^/>

Esto ejecutará el comando >en todas las líneas que coincidan con el patrón ^.

Lo malo es que esto sobrescribirá su historial de búsqueda.

Brett Y
fuente