Come si elimina la prima parola di ogni riga in Vim?Elimina la prima parola di ogni riga
Come su un modello su ogni linea?
Come si elimina la prima parola di ogni riga in Vim?Elimina la prima parola di ogni riga
Come su un modello su ogni linea?
userei qualcosa di simile al seguente:
:%s/^\w+\s+//
L'espressione regolare corrisponderà a uno o più caratteri "word" a partire dall'inizio della riga seguito da almeno un carattere di spazio bianco. Rimuoverà la parola e ogni successivo spazio vuoto. Se una linea può contenere solo una singola parola e vuoi comunque rimuoverla, puoi utilizzare l'alternanza per abbinare uno spazio bianco o la fine della riga.
:%s/^\w+(\s+|$)//
Puoi esprimerlo più in generale: :%: s/^ \\ (\ w \ {- 1,} \\) \\ (\ W \? \\)/\ 2/ In questo modo anche tu non buttare via ciò che termina la parola carattere. (Devi anche guardare quale dialetto di espressioni regolari stai parlando ...) –
Primo canale (in cui parola è definita come senza spazi bianchi)
:%s/^\s*[^ ]* //g
Elimina modello:
:%s/< insert pattern here >//g
Andando per criptico qui, in vero stile VI:
[email protected]
Randy risolto questo in su nei commenti di lavorare su più di 100000 linee:
[email protected]@q
Per coloro che iniziano con Vim, questo si divide in:
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'
In sostanza, la macro è ricorsiva: cancella una parola, si sposta lungo una linea, quindi chiama di nuovo sé stessa, ripetendo per ogni riga fino alla fine del file. L'ultimo '@q' è la chiamata iniziale (manuale) necessaria per impostare la macro su ogni linea.
-1 - non sai quale sia il "vero stile vi", ma non ha senso fare cose criptiche, ostili, solo per mettersi in mostra. c'è una soluzione perfettamente leggibile, che è anche più generale. –
Ah, ma qualcuno ha già pubblicato la soluzione "corretta". Questo era più sulla falsariga del code golf. Il "vero stile vi" è stato un colpo ironico in un editor dove: wq! è il modo corretto per uscire senza modifiche. Non è la bestia più user-friendly. Divulgazione completa: io amo vi e lo uso come mio editor principale. Completa divulgazione: la sintassi del comando vi non è molto comprensibile. –
ggqqdwj @ qq @ q funzionerà su qualsiasi numero di righe, non solo su file con righe <100000. Tbh, questo 'criptico' era ciò che è venuto prima nella mia mente rispetto a un'espressione regolare. –
Che dire di questo?
:% tagliare -s -d' '-f2-
: normale in soccorso:
:%norm dw
Si riproduce in sostanza gli argomenti come se li stesse scrivendo in condizioni normali ('! Non-edit ') modalità.
Da: aiuto:
: [!] Norma [al] {comandi}
eseguire comandi in modalità Normal {comandi}.
Ciò consente di eseguire comandi in modalità normale digitati sulla riga di comando . {comandi} viene eseguito come se fosse stato digitato.
:%s,^[^ ]*,,
Dall'inizio della riga corrisponde a qualcosa, ma non a uno spazio e sostituirlo con nessuno.
Va sottolineato che questo non eliminerà nulla sulle righe con rientro e che elimina ciò che Vim chiama PAROLE (separate da spazi bianchi), non parole. –
Penso che questa domanda appartiene a SuperUser.com –
perché lo pensi? vi è anche un linguaggio di scripting. Questa domanda deve essere spostata, non chiusa, semmai – vehomzzz
Chiusa come appartiene a superuser.com è uguale alla migrazione a superuser.com. – tvanfosson