¿Cómo elimino la primera palabra de cada línea en Vim?Eliminar la primera palabra de cada línea
¿Qué tal un patrón en cada línea?
¿Cómo elimino la primera palabra de cada línea en Vim?Eliminar la primera palabra de cada línea
¿Qué tal un patrón en cada línea?
me gustaría utilizar algo como lo siguiente:
:%s/^\w+\s+//
La expresión regular coincidirá con uno o más caracteres de "palabra" comenzando al principio de la línea seguido por al menos un personaje de espacio en blanco. Eliminará la palabra y cualquier espacio en blanco siguiente. Si una línea puede contener solo una palabra, y aún desea que se elimine, puede usar la alternancia para hacer coincidir el espacio en blanco o el final de la línea.
:%s/^\w+(\s+|$)//
Puede expresar esto de manera más general: :%: s/^ \\ (\ w \ {- 1,} \\) \\ (\ W \? \\)/\ 2/ De esta manera usted también no deseche lo que termine con el personaje de la palabra. (También necesitas ver qué dialecto de expresiones regulares estás hablando ...) –
La primera palabra (donde la palabra se define como la ausencia de espacio en blanco)
:%s/^\s*[^ ]* //g
patrón Delete:
:%s/< insert pattern here >//g
ir para críptica aquí, en cierto estilo de vi:
[email protected]
Randy fijó esto en los comentarios a trabajar en más de 100000 líneas:
[email protected]@q
Para los que se inician con Vim, esto se divide a:
gg - Go to first line
qq - Record a macro into register 'q'
[email protected] - The macro:
dw - delete word at cursor
j - go down one line
@q - run the macro in register 'q'
q - Stop recording the macro
@q - Execute the macro in register 'q'
En esencia, la macro es recursiva: elimina una palabra, mueve una línea hacia abajo y luego se llama de nuevo, repitiendo para cada línea hasta el final del archivo. La '@q' final es la llamada inicial (manual) necesaria para configurar la macro en cada línea.
-1 - no estoy seguro de cuál es el "verdadero estilo vi", pero no tiene sentido hacer cosas crípticas y antipáticas, solo para presumir. hay una solución perfectamente legible, que también es más general. –
Ah, pero alguien ya ha publicado la solución 'correcta'. Esto fue más como un código de golf. El "estilo vi verdadero" fue un desliz irónico en un editor donde: wq! es la forma correcta de salir sin cambios. No es la bestia más fácil de usar. Divulgación completa: me encanta vi y lo uso como mi editor principal. Divulgación completa: la sintaxis del comando vi no es muy comprensible. –
ggqqdwj @qq @ q funcionará en cualquier número de líneas, no solo en archivos con líneas <100000. Tbh, este 'enigmático' fue lo primero que vi en mi mente sobre una expresión regular. –
¿Qué tal esto?
: cortar% -s -d' '-f2-
: normal al rescate:
:%norm dw
Es básicamente reproduce los argumentos como si los estuviera escribiendo en condiciones normales ('! No edición ') modo.
Desde: ayuda:
: [!] Norma [al] {} comandos
ejecutar comandos modo normal {} comandos.
Esto hace posible ejecutar comandos del modo Normal escritos en la línea de comandos . {commands} se ejecuta como está escrito.
:%s,^[^ ]*,,
Desde el comienzo de la línea de solape nada, pero no un espacio y reemplazar con ninguna.
Debe señalarse que esto no eliminará nada en las líneas con sangría, y que esto elimina lo que Vim llama WORDS (separado con espacios en blanco), no las palabras. –
Creo que esta pregunta pertenece a SuperUser.com –
¿por qué crees eso? vi es también un lenguaje de scripting. Esta pregunta se debe mover no cerrada, si algo – vehomzzz
Cerrado como pertenece en superuser.com es lo mismo que migró a superuser.com. – tvanfosson