emacsでメジャーモードを判定するにはauto-mode-alistというリストに拡張子とメジャーモード関数を登録する。 例えばこんな感じの設定がイディオムであり、新しいパッケージを導入した際には脊髄反射的にinit.elに 書くことになる。

(add-to-list 'auto-mode-alist
        '("\\.json\\'" . json-mode))

ここで、"\\.json\\'""\\'"は行末にマッチする意図だと思うのだが、普通、行末には"$"を使っている。 その違いは何やねん?と思って調べた。

解答

  • "$"は、改行の前の空文字にマッチする
  • ”\'”は、文字列の末尾にマッチする

ということらしい。auto-mode-alistに登録するときに"\\'"を使うのは、改行文字が入ったケースを考慮して いるそうな。

参考1 参考2