3
我開始寫「混帳添加-p」這樣的代碼片段:Emacs lisp lambda with lexical binding?
(add-hook
'diff-mode-hook
(lambda()
(mapc (lambda(k)
(lexical-let ((kk k))
(define-key diff-mode-map k
(lambda()(interactive)
(if (region-active-p)
(replace-regexp "^." kk
nil
(region-beginning)
(region-end))
(insert kk)))))) (list " " "-" "+"))))
它的工作原理,因爲我想,這只是醜陋「的詞彙,讓困擾我中間。 我不得不添加它,因爲嵌套的lambda沒有看到變量'k。 有沒有更好的方法來編寫這段代碼?我寧願一些神奇的功能 「lexic - 拉姆達,讓我寫:
(add-hook
'diff-mode-hook
(lambda()
(mapc (lexical-lambda(k)
(define-key diff-mode-map k
(lexical-lambda()(interactive)
(if (region-active-p)
(replace-regexp "^." k
nil
(region-beginning)
(region-end))
(insert k)))))) (list " " "-" "+")))
謝謝,@danlei。我嘗試過使用相同的方法,但是我把反引號放在了錯誤的地方,它不起作用。 –
不客氣。 – danlei