特定フォルダ内ではバックアップを作らない

この前の記事(http://d.hatena.ne.jp/nishiohirokazu/20080328/1206694276)で

Emacsでsnippetsを編集するとチルダのついたファイルができて困る。スニペットフォルダの中だけ作らないようにできないかな。

と書いていたところ、id:IMAKADOさんにサンプルコードをいただきました。ありがとうございます。
参考にして下のようなコードを.emacs.elに書きました。

(add-hook 
 'before-save-hook 
 (lambda ()
   (let ((snippet-dirs "yas_private/")
	 (buf-dir (file-name-directory (or buffer-file-name " "))))
     (when (string-match snippet-dirs buf-dir)
       (set (make-local-variable 'make-backup-files) nil)))))

string-matchは第一引数に正規表現を取ってマッチするかどうかを調べる関数らしいのでsnippet-dirsに書き連ねれば複数ディレクトリでもOKですね。

(string= "a.b" "acb");nil
(string-match "a.b" "acb");0
(string-match "/x/.y" "/foo/x/by");4

追記:(string-match "a" "bab")がnon-nilなのでアスタリスクはいらなかった。削除した。