Le espressioni regolari (spesso abbreviate in "regex") sono espressioni scritte in un linguaggio dichiarativo utilizzato per abbinare schemi all'interno di stringhe.
Ho un file con un sacco di impostazioni predefinite dell'utente. Voglio cambiare parte del testo, ma sto facendo fatica a trovare un matcher e un sostituto. Utilizzando il seguente esempio: ############################################################################### # Trackpad, mouse, keyboard, Bluetooth accessories, and input # ############################################################################### # Trackpad: enable tap to click for this user …
Ho riscontrato molte situazioni in vim in cui sarebbe utile avere dichiarazioni lookaround. Ho provato a utilizzare la sintassi standard ( (?=), (?!)ecc.) , Ma sembra che VIM non supporti questo. Vim ha una sintassi equivalente per questo tipo di affermazioni?
Sto cercando di usare un regex per sostituire il testo in un file (sostituire un URL completo con solo protocollo / dominio /): :%s/\(https\?:\/\/.*?\/\).*/\1/gc Purtroppo .*?non corrisponde alla stringa, anche cercando di sfuggire al ?quantificatore? Come si dovrebbe sfuggire a quantificatore non avido?
Ho un file con il personaggio ã(a + minuscola che combina tilde). Encodinge fileencodingsono entrambi utf-8. gaSpettacoli <a> 97, hex 61, octal 141 <~> 771, Hex 0303, Octal 1403 (ma con l'attuale combinazione di tilde in <>) e g8spettacoli 61 + cc 83 La ricerca con /a\%u0303funziona bene. La ricerca …
Sto lottando con l'apprendimento di vim regexps (non conosco molto bene neanche un'altra regexp), quindi il problema principale è definire regexp che corrisponderebbe some_function_call(simple_value, keyword=value) parola chiave in questo esempio. Quindi dovrebbe corrispondere a una parola se è all'interno di parentesi e ha un segno uguale dopo di essa. Il …
Da :h E65possiamo vedere che Vim non consente più di 9 gruppi di acquisizione in un comando di sostituzione. Ad esempio il seguente comando funzionerà: s/\v(a)(b)(c)(d)(e)(f)(g)(h)(i)/\9\8\7\6\5\4\3\2\1 Ma questo con un altro gruppo di acquisizione fallirà: s/\v(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)/\10\9\8\7\6\5\4\3\2\1 La mia domanda non riguarda il motivo per cui fallisce (è un limite rigido …
Le sintassi delle espressioni regolari di molti strumenti Unix sono spesso le espressioni regolari di base ed estese codificate da POSIX (BRE ed ERE, rispettivamente) e, in alcune implementazioni moderne, lo stile Perl (PCRE è un'implementazione di questo). Esiste una corrispondenza uno a uno tra i livelli di magia di …
Ho una linea come questa: function my_function(argument, another argument, but there are spaces) Voglio sostituire i caratteri dello spazio (all'interno dei nomi dell'argomento) con trattino basso. Vorrei quindi utilizzare: :s/\ /_/g ma come posso scegliere di non applicarlo all'intera linea, ma partendo, per esempio, dalla posizione del cursore? (O la …
In Vim, la classe di caratteri \scorrisponde a qualsiasi personaggio di spazi bianchi. Quando sto usando quei caratteri speciali in gruppi, ad es [\s\w]. Non corrisponde a nessun singolo spazio bianco o carattere di parola, corrisponde so w. Come si usano le classi di caratteri all'interno dei gruppi?
Se ho un regex Vim magico in una stringa letterale, c'è un modo per convertire l'intero regex in una rappresentazione alternativa che utilizza una diversa modalità magica, quindi potrei incollare quel regex equivalente nel codice sorgente? Ad esempio, se voglio convertire questo modello in modalità magica: '\m-\=\<\d\+L\=\>\|0[xX][0-9a-fA-F]\+\>' in modalità molto …
Sappiamo tutti che, durante la ricerca, \nè newline ed \rè il ritorno a capo ( ^M), ma quando la sostituzione \rè newline mentre \nè un byte null ( ^@). Qual è l'origine di questa asimmetria? Dato che questo comportamento è ... a dir poco strano (e alquanto controproducente quando la …
Ho ottenuto un file di testo semplice con colonne di valori separate da spazi bianchi. Come questo: AU 3030 .... ... .... AU 3031 .... ... .... AU 3032 .... ... .... AU 3033 .... ... .... IT 48100 ... .. ..... IT 40100 ... .. ..... IT 48123 ... …
Ho un file di configurazione ripetitivo e vorrei abbinare una regex ed eliminare un intervallo di righe prima e dopo una partita. Vorrei anche eliminare la partita in un solo comando. Posso usare... :g/match/-1d ... più volte per eliminare più di una riga prima di una partita ... ... e …
C'è un modo per avere vim non contrassegnare URL HTTP e indirizzi e-mail come errori di ortografia? O, più in generale, un modo per elencare regex di ortografia valida?
Ho un elenco di file: ./a.temp.txt ./a.temp.txt ./a/b.temp.txt ./a/b.temp.txt ./a/b/c.temp.txt ./a/b/c.temp.txt E voglio rimuovere il temp.su ogni riga, ma solo la seconda occorrenza , quindi, il file dovrebbe apparire come: ./a.temp.txt ./a.txt ./a/b.temp.txt ./a/b.txt ./a/b/c.temp.txt ./a/b/c.txt Come dovrei farlo?
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.