過剰な閉カッコへの対処は、まずファイルの先頭に移動してからカッコのマッチしないdefunを探すためにC-u -1 C-M-u
(引数−1でbackward-up-list
)をタイプします。
それからdefunの先頭でC-M-f (forward-sexp
。Expressions in The
GNU Emacs
Manualを参照)をタイプして、実際にマッチする閉カッコを探します。これによりdefunの終端より幾分手前の箇所に移動するでしょう。その付近に間違った閉カッコが見つかるはずです。
そのポイントに問題が見つからない場合には、そのdefunの先頭でC-M-q
(indent-pp-sexp
)をタイプするのが次のステップです。ある行範囲はおそらく左へシフトするでしょう。その場合には欠落している開カッコや間違った閉カッコは、おそらくそれらの行の1行目の近くにあるでしょう(しかしこれを真実と仮定せずコードを詳しく調べること)。不一致箇所が見つけたら、元のインデントはおそらく意図されたカッコに適しているはずなのでC-_
(undo
)でC-M-qをアンドゥしてください。
問題をfixできたと思った後に再度C-M-qを使用します。実際に元のインデントが意図したカッコのネストに適合していて、足りないカッコを追加していたら、C-M-qは何も変更しないはずです。