Meadow に JavaScript メジャーモードを追加する
私はテキストエディタとして Meadow を愛用しているのですが、実は Meadow には JavaScript モードが付いていません(代わりに Java モードが使われる)。 Infosketch の開発にあたりこれでは不便なので、 JavaScript モードを探してみました。
少しググってみたところ、こちらのページにいくつかの Emacs lisp スクリプトが紹介されているのを見つけました。その中から最も評価が高そうな Karl Landström 氏制作の javascript.el をインストールしてみたのですが、これが素晴らしい。正規表現リテラルの色分けや関数呼び出しの引数リストに記述された無名関数内のインデントなども完璧にこなします。もちろん Meadow でもバッチリ動きます(Meadow 3.00 開発版で確認)。
そんなわけで、本日はこの javascript.el と、ついでに同じ作者さんの css-mode.el のインストール方法をご紹介します。けっこう有名なスクリプトみたいなので、ご存知の方はごめんなさいです。
javascript.el のインストール
javascript.el は単一の Emacs lisp ファイルなので、単にファイルをロードパスの通った場所にコピーするだけで使えます。具体的なインストール手順は以下のとおりです。
- こちらのページからリンクされている javascript.el (実際には javascript.el.zip)をダウンロードします。
- ダウンロードした javascript.el.zip を適当な場所に展開します。
- 展開した中に javascript.el が含まれているはずなので、それを Meadow のインストールディレクトリの site-lisp 内にコピーします。
- .emacs に以下の内容を追加します。
(autoload 'javascript-mode "javascript" nil t) (setq auto-mode-alist (cons '("\\.js$" . javascript-mode) auto-mode-alist))
これで拡張子が .js のファイルを開いた際に自動的に javascript.el が有効になります。手動でのモード切り替えは "M-x javascript-mode" です。
カスタマイズできる値は以下のとおりです。
変数名 | 機能 |
---|---|
javascript-indent-level | インデント幅(デフォルト 4) |
javascript-auto-indent-flag | nil にすると、";" などによる自動インデントを禁止する |
例えば、以下の行を .emacs に追加すると、インデント幅が 2 になります。
(setq javascript-indent-level 2)
ちなみにこの javascript.el 、 ActionScript の編集にもけっこう使えます。 package, import, extends などといった ActionScript のキーワードもきちんと色分けされます。インデント制御が賢いので、 actionscript-mode.el よりお勧めかも。
css-mode.el のインストール
css-mode.el はその名のとおり CSS ファイルを編集するためのメジャーモードです。 javascript.el とほとんど同じですが、インストール手順は以下のようになります。
- こちらのページからリンクされている css-mode.el (実際には css-mode.el.zip)をダウンロードします。
- ダウンロードした css-mode.el.zip を適当な場所に展開します。
- 展開した中に css-mode.el が含まれているはずなので、それを Meadow のインストールディレクトリの site-lisp 内にコピーします。
- .emacs に以下の内容を追加します。
(autoload 'css-mode "css-mode" nil t) (setq auto-mode-alist (cons '("\\.css$" . css-mode) auto-mode-alist))
カスタマイズできる変数は "css-indent-level" のみで、インデントの幅を指定できます。例えば以下の行を .emacs に追加すると、インデント幅が 4 になります(デフォルトはなぜか 3)。
(setq css-indent-level 4)
バイトコンパイルする
上記の方法でインストールしただけだと、いちいち Emacs lisp をコンパイルする必要があるため、 javascript-mode の起動時に少し時間がかかります。これが気になる場合は、スクリプトをバイトコンパイルしておきましょう。手順は以下のとおりです。
- Meadow を起動します。
- M-x byte-compile-file を入力します。
- javascript.el のフルパスを入力し、 Enter キーを押します。
- 2〜3 を css-mode.el について繰り返します。
これで javascript-mode.elc と css-mode.elc が作成されたはずです。もし Dired の操作に慣れているなら、 Dired でファイルを選んで 'B' キーを押すという手もあります。
ちなみに、バイトコンパイル後の .elc ファイルは .el ファイルよりも優先して読み込まれるので、 .el を変更しても再度バイトコンパイルするまでは反映されません。以下の手順で site-lisp 内をすべてリコンパイルするのが手軽です。
- Meadow を起動します。
- M-x byte-recompile-directory を入力します。
- site-lisp ディレクトリのフルパスを入力し、 Enter キーを押します。
これで site-lisp ディレクトリ内のすべての .elc ファイルが最新の状態になります。
以上、本日は Meadow に JavaScript メジャーモードをインストールする方法をご紹介しました。これで Meadow での JavaScript 編集もバッチリです。 Aptana などの統合開発環境もいいのですが、言語・プラットフォームを超えて共通に使える Emacsen はやはり手放せません。
…たとえおぢさんと呼ばれても、手放せませんよ!(゜Д゜ クワッ
詳しくはこちらの記事をどうぞ!
この記事にコメントする