Post

Visualizzazione dei post da settembre, 2022

Vim: studio sulla trasposizione di elenchi di nomi da orizzontali a verticali

Immagine
Obiettivo primario dello studio Stato iniziale : serie di nomi in linea, separati da un punto e virgola seguito da uno spazio. Obiettivo : trasporre tutti i nomi in una colonna eliminando sia punti e virgola che gli spazi. Finalità : Creazione di elenco per mail-merging con client di posta elettronica ( Thunderbird ). Strumenti : Vim e funzione RegEx incorporata. Esempio : Da: One@mail; Two@mail; Three@mail; ... A: One@mail Two@mail Three@mail ... Obiettivo secondario Provare l’integrazione tra Markdown e tag css. Questo obiettivo è stato realizzato nell’Esempio sopra riportato mediante inserimento del seguente codice: <p style = "text-align: center; font-weight: bold;" > Da: </p> <pre> One@mail; Two@mail; Three@mail; ... </pre> <p style = "text-align: center; font-weight: bold;" > A: </p> <pre> One@mail Two@mail Three@mail ... </pre> Vim: espressione regolare per l’obiettivo

Vim: sostituire testo in tutti i buffer aperti con un solo comando

Immagine
Vim: è necessario sostituire del testo in tutti i buffer aperti? Avete necessità di effettuare una sostituzione tra due parole o frammenti di testo in tutti i documenti aperti? La prima opzione è quella di aprire tutti i documenti e di effettuare una ricerca con sostituzione in ciascuno di essi. La stringa di ricerca e sostituzione sarebbe simile a quella sotto riportata dove foo sarebbe il dato da sostituire e bar il dato sostituto. %s/foo/bar/g La lettera g a fine stringa determina la sostituzione g lobale evitando la richiesta di accettazione per ogni elemento sostituito. Vim: è possibile effettuare l’operazione con un solo comando? Quello precedentemente illustrato è già un buon sistema, ma si può fare di meglio: si possono sostituire tutti gli elementi in tutti i documenti aperti in Vim con un unico comando . Il comando è il seguente: :bufdo %s/foo//g | w In pratica il comando bufdo estende l’operazione a tutti i buffer aperti. Il nome stesso è mnemonico in quanto

Confronto tra Vim ed Emacs per un'operazione di sostituzione tramite espressioni regolari

Immagine
Prefazione Questo è un articolo riassuntivo di due precedenti post che potete leggere a queste pagine: “Vim: Studio sulla costruzione di Espressioni Regolari per cancellare o ridurre righe vuote con il Comando Globale” “Emacs: Studio sulla costruzione di espressioni regolari per eliminare o ridurre le righe vuote” L’argomento delle “espressioni regolari” in Vim ed Emacs si presta bene a un confronto funzionale tra i quattro diversi scenari trattati negli articoli sopra menzionati ai quali rimando per la descrizione della sintassi. Tabella Comparativa Obiettivo Vim Emacs Eliminare le righe vuote “pure” :g/^$/d M-x flush-lines <RET> ^$ <RET> Eliminare le righe vuote con spazi bianchi :g/^\s*$/d M-x flush-lines <RET> ^\s-*$ <RET> Ridurre le righe vuote “pure” :g/^$\n^$/d M-x query-replace-regexp <RET> ^C-qC-j\{2,\} <RET> C-qC-j <RET> Ridurre le righe vuote con spazi bianchi g/^\s*$\n^\s*$/d ^\(^C-q<SP

Emacs: Studio sulla costruzione di espressioni regolari per eliminare o ridurre le righe vuote

Immagine
Dopo l’articolo su “Vim: Studio sulla costruzione di Espressioni Regolari per cancellare o ridurre righe vuote con il Comando Globale” ho provato a confrontarmi con un’analoga operazione in Emacs. L’obiettivo è studiare le differenze di sintassi relative alle “espressioni regolari” tra due sistemi di scrittura. Quello che segue è il risultato dei miei tentativi dopo varie ricerche in rete. Rimuovere le righe vuote in Emacs usando RegExp Innanzitutto, può essere utile visualizzare le righe vuote del documento. Per visualizzare in anteprima le righe vuote, si può usare la funzione whitespace-mode ( M-x whitespace-mode <RET> ): le righe vuote saranno contrassegnate da segni di dollaro, cioè righe in cui non c’è alcun carattere, nemmeno uno spazio bianco. A questo punto è possibile selezionare una regione o operare sull’intero documento dal punto del cursore con la funzione flush-lines , o con l’alias delete-matching-lines , per rimuovere le righe che corrispondono al risul