İki alanı artımlı arama ile eşleştirme


20

Kullanarak arama yaparken:

C-s SPC SPC

Tek boşluklarla da eşleşir. Tam olarak iki boşluğu eşleştirmek istiyorum.

Yanıtlar:


24

M-s SPCIsearch sırasında, eşleşen boşlukları kelimenin tam anlamıyla değiştirmek için kullanın . Kelimenin tam anlamıyla eşleştirirken, yazdığınız her SPCkarakter ayrı ayrı eşleştirilir. (Bu, varsayılan Emacs davranışı BTW idi.)

Bunu varsayılan davranış özelleştirme seçeneği olarak yapılandırmak search-whitespace-regexpiçin nil. ( M-x customize-option search-whitespace-regexp.)

GNU Emacs kılavuzuna bakın, düğüm Special Isearch.


Bunun için teşekkürler. .Emacs satırını (set-variable 'search-whitespace-regexp nil)oraya koymak iyi olabilir . Teşekkürler.
Gri

1
@Gray: set-variableyeni değeri kalıcı olarak kaydetmez, bu nedenle varsayılan davranışı değiştirmez. Bence M-x customize-optionburada çağırılan şey.
Drew

Oh nokta emacs dosyasında bunun hakkında konuşuyordum. Özelleştirme seçeneğini bilmiyordum. Düzenlediğiniz için teşekkürler.
Gri

3

Regexp artımlı aramayı kullanmak boşluk karakterlerinden kaçarsanız sorunu çözer:

C-M-s \SPC\SPC

Arama ve değiştirme işlemlerini ters eğik çizgiler olmadan da kullanabilirsiniz, eğer peşindeyseniz:

M-% SPC SPC

Bugün bir klavye makrosu oluştururken de aynı problemle karşılaştım. Bu cevap benim için problemi çözdü, ESC C-sbunun yerine tuş kombinasyonunu kullanmak zorunda kaldım . Ayrıca bkz. Github.com/leoliu/ggtags/issues/64
Jonas Dahlbæk

3

Normal ifade aramasını kullanmak yardımcı olur, ancak aramada boşluk C-q SPCbırakmak için arama için gerçek alanlardan da emin olabilirsiniz .

@ Rovanion'un cevabından kurtulmak için şunu kullanarak isearch-forward-regexp:

C-M-s C-q SPC C-q SPC

Bu iki ardışık boşluk arayacaktır. İlginçtir, isearch-forward-regexpayrık eşleşmeler gerektirir. Arama aaaiçin aasadece ikinci karakterde bir kez daha değil eşleşir.


Son notunuzla ilgili olarak, "sıfır veya daha fazla boşluk, ardından bir şey" aradığınızı ve baştaki boşlukların N karakterleri verildiğinde, tüm N + 1 ayrı eşleşmelerinde adım atmanız gerektiğini hayal edin. Bunu sağlamak için makul bir seçenek olduğunu görebiliyorum , ama korkunç bir varsayılan olurdu.
phil
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.