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 and for the login screen
defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Clicking -bool true
Vorrei sostituirlo # Trackpad: ...
conrunning "Trackpad: ..."
Risolvendo il problema, ho pensato a qualcosa usando un tester regex:
/\n\n#\s(.*)/g
Se provo ad usare questo in Vim non funziona per me:
:/\n\n#\s(.*)/running "\1"/g
Immagino che il mio problema si riduca a due domande specifiche:
- Come posso evitare la ricerca di
\n
personaggi e invece assicurarmi#
che non compaia alla fine del gruppo di ricerca? - Come posso utilizzare efficacemente i gruppi di acquisizione?
Di seguito sono riportate alcune ottime risposte. Difficile scegliere tra tutti e tre, tuttavia ritengo che la risposta scelta sia la più accurata per le mie specifiche originali. Ti consiglio di provare tutte e tre le risposte con il file effettivo per vedere come ti senti su di esse.
:%s/\v\n\n#\s+(.*)/^M^Mrunning "\1"/
(aggiunta la bandiera "magica"). È davvero difficile scegliere una risposta corretta per la mia domanda originale, ma ritengo che questa sia la più vicina alla mia risposta originale prevista. È anche l'unico che funziona su tutto il file senza la necessità di selezionare un intervallo.