bazı girdileri ile küçük JSON dosyaları var, burada bir bölüm: Ben tüm değerlerin önüne "\ U25" eklemek zorunda farkVim Yedek komuta ve regexp'in
"i":{
"normale":"3c",
"bold":"4b",
"doppio":"6c"},
"is":{
"normale":"2c",
"bold":"33",
"doppio":"66"},
, bu yüzden
::%s:\("\)\(\d\d"\)\|\("\)\(\d\w"\):"\\u25\2
fikir "gg" veya "dw" birini aramak ve "\u25
rest.This tutarken ilk çift tırnak ikame etmektir
sonucudur: Bu komutu çalıştı
"i":{
"normale":"\u25,
"bold":"\u25,
"doppio":"\u25},
"is":{
"normale":"\u25,
"bold":"\u2533",
"doppio":"\u2566"},
Eşleşen dizgede yalnızca iki basamak varsa, komut düzgün çalışır: ilk çift alıntı (ilk grup) değiştirilir ve ikinci grup olduğu gibi bırakılır. Bununla birlikte, eşleşen dizede bir rakam ve bir karakter varsa, ikinci diziyi yok sayıp tüm dizeyi değiştirir. İki desen \w
hariç, aynıdır, bu yüzden aynı şekilde çalışmalıdır. Ne oluyor?
Aha,
:%s/:"/:"\\u25"/
Veya:
sen kullanabilir miyim! Güzel ve temiz, bunu fark etmedim. Yani, belki de benim komutum işe yaramadı çünkü "dw", "aşağıdaki karaktere sahip bir rakam" yerine bir hex karakteri olarak tanınır. –
Ondalık basamaklarla eşleştiğinden ve \\ "hex basamakları eşleştiğinden"? –