emacsの未評価のフレーム位置について
emacsを使っていると(left + -7)
のような未評価のフレーム位置(?)を見かけます。(例えば、自分の環境ではemacs -q
として起動した後、*scratch*
で(frame-parameters (window-frame (selected-window)))
を評価すると、... (top . 96) (left + -10)...
と出力されます。)
このようなleft
値を連想リストの形でファイルに保存し、起動時にread-from-string
で式を取り出してset-frame-position
で設定してやろうとすると*Backtrace*
に次のようなエラーが出ます。
Debugger entered--Lisp error: (wrong-type-argument integerp (+ -10))
set-frame-position(#<frame emacs@xxx 0xyyyyyyy> (+ -10) 14)
<略>
得られた値をeval
してやることで取り敢えずこのエラーを解決できたのですが、より良い方法(例えば、S式で設定を保存する場合のベストプラクティス、frame-parameters
の返す連想リストに未評価の値を含ませない等)があれば教えてください。