Büyük harf ve belirli bir harfle biten bir kelime nasıl eşleştirilir?


9

lblSERINOdCümlelerdeki gibi kelimelerim var . Kelimeler beyaz boşluk ile ayrılır.

dTüm bu kelimelerin sonundaki ile değiştirmek istiyorum u. Yani örneğin lblSERINOdbenzeyecek lblSERINOu.

Denedim s/.*\ud /u /gama Vim bulamadığını söylüyor .*\ud.

Burada sorun nedir?

Yanıtlar:


10

Bunu yapmanın bir yolu şudur:

:%s/\u\zsd\>/u/g

Başlangıçta yeni Vim regex motoru ( "hızlı, ancak sınırlı" olarak reklamı yapılan) anlayamıyorum farz \uiçinde :substitute, ama bu durum böyle değil. Ben doğrusu OP kullanmayı unuttum şimdi düşünüyorum %ve sadece yanlış hat üzerinde arandı; bu hata mesajını açıklar, ancak elbette hala "neden" olarak doğrulanması gerekir.


2
'yeniden' motor şeyinden emin misin? Bunun nasıl bir fark yarattığını görmüyorum.
Christian Brabandt

Hayır, hiç emin değilim ... İşe yaramayan hızlı bir test yaptım, sonra patternyardım dosyasında tekrar okudum , yeni motorun eskisinden daha sınırlı olduğunu gördüm, bunun sebebi var. ilk
testim

5

Görünüşe göre Vim'in 'magic'seçeneğini varsayılan ayarından değiştirmiş olabilirsiniz 'nomagic'. Bunu komutla kontrol edebilirsiniz.

:verbose set magic?

En belgelendiği gibi : help / büyü , 'nomagic'neden .bir regexp'nin bir birebir nokta yerine "herhangi bir karakter eşleşmesi" anlamına metakarakterinden olarak tedavi edilecek.

Ben ediyorum derece varsayılan değerinde bu seçeneği bırakarak öneriyoruz. Bu, gerçekten olmaması gereken ve eklentilerde ince sorunlara neden olabilecek birkaç seçenekten biridir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.