バッファローカル変数を別のバッファでどのように処理できますか?私はletとバインドできると思っていましたが、変数をsymbol-value
を使用する別の関数に渡すのに問題があります。ここで私はそうformat-fun
は別のバッファでそれを処理することができfun
でlocal-var
をバインドするにはどうすればよい、別のバッファでバッファローカル変数の値を使用する
(defvar-local local-var nil)
(setq local-var "a")
(defun fun()
(let ((local-var local-var))
(with-temp-buffer
(format-fun 'local-var)
(message (buffer-string)))))
(defun format-fun (name)
(insert (symbol-value name)))
小さな例ですか?
私は私の機能を試してみましたが、それがうまく働きました。私はEmacs 22を使用しているので、 'defvar-local'はありませんが、' make-local-variable'を使って行いました。 – Barmar
ソリューションがどのように役立つかわかりません。同じ変数を2回バインドすると、最初のバインディングがシャドウされます。 – Barmar
値が 'nil'の場合、'(insert(symbol-value name)) 'がエラーになるので' format-fun'を変更する必要がありました。 '(insert(format"%s "(symbol-value name)))' – Barmar