2012-10-10 19 views
8

Bir c/C++ buffer içinde normal ifadeleri aramak istiyorum, ancak bir yorum bölgesiyle eşleşen ifadeyi kullanmak istemiyorum. Bir metin grubunun bir yorum bölgesinin içinde olup olmadığını (veya bir yorum bölgesindedir) bilmek için c modunu kullanmanın bir yolu var mı?emacs lisp ve c-mode: bir yorum bölgesinde olduğum zaman

cevap

10

anlamaya yolu C/C++ ve en büyük modlarda çalışır syntax-ppss beraberdir. Örneğin. (null (nth 8 (syntax-ppss))), yalnızca bir dizgi veya yorum içinde değilseniz, sıfır olmaz.

0
(defun re-search-forward-not-in-comment (regexp) 
    "Search forward first regexp not inside a comment. " 
    (interactive 
    (list (read-from-minibuffer "Regexp: "))) 
    (while (and (re-search-forward regexp nil t 1) 
      (and (nth 8 (syntax-ppss))(nth 4 (syntax-ppss)))))) 
+3

Lütfen sadece bir bağlantıdan daha fazlasını sağlayın. – skolima

+4

Cevabınızı buraya yapıştırarak düzeltebilirsiniz. Bu şekilde, bağlantı, çürümeden sonra hala yararlı olacaktır. –

+0

İsterseniz, neden kopyalamıyorsunuz, ücretsizdir. –

İlgili konular