Lispリーダーは構文エラーを報告しますが、実際の問題がどこにあるかまでは特定できません。例えば、式の評価におけるエラー ‘End of file during parsing’ は、開き括弧(または角括弧)が多すぎることを示しています。リーダーはファイルの末尾でこの不均衡を検出しますが、閉じ括弧がどこにあるべきかまでは判断できません。同様に、‘Invalid read syntax: ")"’ は閉じ括弧の過剰または開き括弧の欠落を示しますが、欠落している括弧がどこにあるべきかまでは示しません。では、何を修正すべきかをどうやって見つければよいのでしょうか。
問題が単なる括弧のバランスの崩れではない場合、各defunの冒頭に C-M-e (end-of-defun、The GNU Emacs
Manual の Moving
by Defuns を参照)
を試して、そのdefunが終わると思われる箇所まで移動できるか確認するという手法が有効です。もし移動できなければ、そのdefunに問題があることになります。
しかし、不対応の括弧はLispにおいて最も頻出する構文エラーであり、こうしたケースに対するさらなるアドバイスを提示できます。 (加えて、Show Parenモードを有効にした状態でコード内をポイント移動させるだけでも、不対応箇所が見つかるかもしれません。)