読者です 読者をやめる 読者になる 読者になる

北海道苫小牧市出身の初老PGが書くブログ

永遠のプログラマを夢見る、苫小牧市出身のおじさんのちらしの裏

js2-mode

js2-mode は確かにいいんですが、こちらこちらで言及されてるようにデフォルトだと暴れん坊で使いこなせません。

特にTAB幅が8でインデント幅が2だったりする辺りについていけなかったので、オレはこう設定しました。

(autoload 'js2-mode "js2" nil t)
(add-to-list 'auto-mode-alist '("\\.js$" . js2-mode))
(add-hook 'js2-mode-hook
          '(lambda ()
             (setq js2-basic-offset 4
                   tab-width        4
                   indent-tabs-mode nil
                   js2-cleanup-whitespace nil)))

TAB文字は使わずに全部スペースで幅4でインデントする感じです。これで一気に大人しくなってくれました。

ただし、全角スペースや半角スペースの色付けの設定は飛んじゃいました。js2-modeのシンタクスハイライトに負けてるのかなと予想*1

しかし、これ設定するだけで1時間以上の苦闘。やっぱ今後のこと考えると、elispは本腰入れて学んでおいた方がいい気がします。正直行って今使ってるemacsの動きには満足行ってないので*2、もっとなんとかしたいです。

追記1/12

ただし、全角スペースや半角スペースの色付けの設定は飛んじゃいました。

jaspace.elを入れて、以下の設定しといたら普通に有効になりました。

(setq jaspace-modes (append jaspace-modes
                                (list 'js2-mode)))

*1:過程でjaspace.elなるものを見つけたので乗り換えるかな

*2:もちろん、.emacsのカスタマイズが甘いからです