これは私のコードの単純な間違いであるかどうかはわかりません。しかし、私は問題の原因を突き止めることができないので、指摘してください。ループ内に作成されたときにemacsオーバーレイが自動的にマージされる
aaaaa
(progn
(setq ol-list nil)
(dolist (pos '(1 2 3 4))
(let ((ol (make-overlay pos (1+ pos) (current-buffer))))
(overlay-put ol 'display "X")
(print ol)
(setq ol-list
(nconc ol-list (list ol)))
);; let
) ;; dolist
)
(progn
(dolist (ol ol-list)
(delete-overlay ol))
(setq ol-list nil))
各progn
セクション上記のコード開始あなた "のLispモード" バッファでスニペット、及び評価(C-X-C e)を置きます。
私のemacsでは、最初のコードセクションは "aaaaa"を "Xa"にします。しかし、結果は "XXXXa"になるはずです。だから問題はどこにあるの?
まあ、答えだけでなく、誠実な提案をありがとう。私は前に "ディスプレイを置き換える"というルールを知らない。これは私を助けます。 – winterTTr