Vim global ikamesi bir satırdaki tüm eşleşmeleri alt üstlenmez


12

bazen benim küresel subtistusions'ım bir satırdaki tüm eşleşmelerin yerine geçmez. Doğrulama ile ikame yaptığımda görebildiğim gerçeği ile teyit edilir, birden fazla olası eşleşmenin olduğu bir çizgide bir eşleşme bulunur, ancak daha sonra başka bir çizgiye gider.

Kullandığım gveya gcbirlikte tüm dosya işletim parametrelerini %.

Bu dosyada:

hello hello
hello
hello hello hello
hello

Yaparsam %s/hello/goodbye/galırım

goodbye hello
goodbye
goodbye hello hello
goodbye

Benim sahip olduğum tek .vimrcdair arama / replasmanı

set hlsearch
set ignorecase
set incsearch

3
Lütfen, bize gerçek bir dünya örneği verin ve bize gösterin vimrc.
romainl

2
Çıktısı nedir :echo &gdve böyle bir 2. gbayrak eklerseniz %s/hello/goodbye/ggya da gbayrağı tamamen kaldırırsanız ne olur ? Çıktısı :echo &gdise 1, set nogdefaultsonuna eklemeyi deneyin vimrc.
user9433424

1
İnce! Nedenini bilmiyorum ama varsayılan olarak 0'a ayarlandığından, set nogdefaultdediğin gibi ekledim ve şimdi çalışıyor. Teşekkür ederim!
Nicolas Scotto Di Perto

Yanıtlar:


12

Belki siz veya bir eklenti seçeneği etkinleştirmiş olabilirsiniz 'gdefault'. Bu seçenek, gher değişiklik yaptığınızda bayrağı otomatik olarak ekler .

Yani, el bayrak eklediğinizde gise 'gdefault'size 2 varmış gibi etkinleştirildiğinde, bu kadar ghiçbiri aynı etkiye sahiptir bayrakları. Bu nedenle Vim, her satırdaki desenin sadece ilk oluşumunu değiştirir.

Varsayılan olarak, bu seçenek devre dışıdır, ancak emin olduğu aşağıdaki konularda sonunda ekleyebilir yapmak vimrc: set nogdefault.

Alternatif olarak, bir eklentinin seçeneği etkinleştirmiş olabileceğinden şüpheleniyorsanız, aşağıdakileri takip edebilirsiniz: verb set gd?

Ya da seçeneğe alışabilirsiniz, yani bir desenin tüm tekrarlarını değiştirmek istediğinizde, gbayrağı eklemezsiniz (çünkü gdefaultzaten yapmıştı) ve desenin sadece 1. tekrarını değiştirmek istediğinizde bir satıra gbayrak eklersiniz (çünkü 2 gbayrak hiçbiri ile aynı değildir).

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.