Kötü mod ve düzenli ifadeler


10

Vim'de, X'in bir sayı olduğu tüm değişken adları LX'i aramak istersem, yazabilirim /L\d. Ancak, bu işe yaramaz gibi görünüyor evil.

Kötü modda normal ifadeler için başka bir sözdizimi var mı, yoksa normal ifadeler kullanarak arama ve değiştirme için bazı Emacs işlevlerine geri dönmem gerekecek mi?

Ben kullanıyorum spacemacsve Emacs, birçok şey mutlu mutlulukla bütün gün kalmak :) ile ilgili oldukça clueless :).


Nerede arama yapmaya çalışıyorsunuz? Bir belgede mi, yoksa emac'ın global değişkenlerinde mi?
Jules

Bir metin belgesinde
arıyorum

Kullandığınız isearchfalan gibi helm-swoopya swiper? Son ikisi istediğinizi kolayca yapabilmelidir. Normal isearchişlevi kullanmak istiyor ancak farklı bir normal ifade motoru kullanmak istiyorsanız, github.com/benma/visual-regexp-steroids.el
Jules

Yanıtlar:


7

evilKaputun altındaki Emacs normal ifadesini kullanır. Ne yazık ki, Emacs basamaklar için ayrı bir sözdizimi sınıfına sahip görünmüyor ve \d regexp sınıfını tanımıyor .

Yani, adında Değişkeninizi maç için LXnerede Xbir rakamdır, o aksak beraberler sıkışmış sana benziyor /L[0-9], hatta clunkier /L[[:digit:]].

Prensipte, karakter kodlarını şu şekilde listelendiği gibi kullanabileceğinizi unutmayın describe-categories:

`\cc`

matches any character whose category is *c*.  Here *c* is a
character that represents a category: thus, 'c' for Chinese
characters or 'g' for Greek characters in the standard
category table. You can see the list of all the currently
defined categories with `M-x describe-categories RET`. You can
also define your own categories in addition to the standard
ones using the `define-category` function (see Categories).

Buna göre describe-categories, rakamlar kategori 6'dır. Bu nedenle, /L\c6çalışmalıdır (diğer kategoriler de olsa benim için olmasa da). Yine de, kendinizle karşılaştırıldığında çok garip yazarak tasarruf edemezsiniz /L[0-9].


Çok teşekkür ederim! Şimdilik hantal sözdizimiyle yaşayabileceğimi düşün. Sadece daha rahat bir şekilde yerine aramak için mutluyuz ve sadece yakalama desenleriyle bile çalıştığını test ettim, yay!
Michelrandahl
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.