İçinde bir sürü kullanıcı varsayılanı olan bir dosyam var. Metnin bir kısmını değiştirmek istiyorum, ancak bir eşleştirici ve tekrarlayıcı ile gelmekte zorlanıyorum. Aşağıdaki örneği kullanarak:
###############################################################################
# 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
Ben değiştirmek istiyorum # Trackpad: ...
ilerunning "Trackpad: ..."
Sorunu yıkmak, bir regex test cihazı kullanarak bir şey buldum:
/\n\n#\s(.*)/g
Bunu Vim'de kullanmaya çalışırsam, benim için işe yaramaz:
:/\n\n#\s(.*)/running "\1"/g
Sanırım sorunum iki özel soruya yol açıyor:
\n
Karakter aramaktan nasıl kaçınabilirim ve bunun yerine#
arama grubunun sonunda görünmediğinden emin olabilir miyim ?- Yakalama gruplarını etkili bir şekilde nasıl kullanabilirim?
Aşağıda harika cevaplar var. Üçü arasında seçim yapmak zor, ancak seçilen cevabın asıl şartlarım için en doğru olduğunu düşünüyorum. Onlarla ilgili nasıl hissettiğinizi görmek için asıl dosyayla her üç yanıtı da denemenizi öneririz .
:%s/\v\n\n#\s+(.*)/^M^Mrunning "\1"/
("sihirli" bayrağını ekledi). Asıl sorum için doğru bir cevap seçmek gerçekten zor, ama bu cevabın asıl beklenen cevaba en yakın olduğunu düşünüyorum. Ayrıca, tüm dosya boyunca bir aralık seçmeye gerek kalmadan çalışan tek dosyadır.