愛用中のテキストエディタ xyzzy 用 javascript-mode を見つけたのでメモ.

入力補完や任意の関数のブロックへのジャンプ,制御文のテンプレートの挿入等ができるようですね.

参考
siteinit.l or .xyzzy に追記

.js 拡張子で自動で起動するようにすることも踏まえ,以下の 2行を追加します.

1
2
(require "javascript-mode")
(push '("\.js$" . javascript-mode) *auto-mode-alist*)

私の場合,siteinit.l に書いても動作しなかったため,.xyzzy に書きました.

おまけ: インデントの変更

javascript-mode のインデント,デフォルトでは 4文字分のタブが挿入されます.

個人的には 2文字分のスペースが挿入される方が好きなので,javascript-mode.l に変更を加えてみました.

1
2
3
4
(defvar *javascript-indent-level*
  4
  "The number of columns by which respective statement blocks could be shifted to
one lower level.")

この部分で,インデントの文字数を定義しているようです.で,4 を 2 へ変更してみました.

1
2
3
4
(defvar *javascript-indent-tabs-mode*
  t
  "Non-nil (default) means javascript-mode uses tabs in place of multiple spaces
for indentation.")

この部分で,インデントでタブを挿入するかを定義しているようです.で,t を nil へ変更してみました.

その結果,うまく動作したようです.それにしても,Lisp はサッパリ分かりませんな.

本日の一語: 補完
  • 欠けているところや不十分なところを補って完全なものにすること.
  • goo辞書より

自分の無数の欠陥も補いたいものです...

こちらもあわせてどうぞ

One Response to “xyzzy: javascript-mode”

  1. おおさわ より:

    こんにちは。
    Javascript モードを探していたので助かりました。

    インデントの設定については、javascript-mode.l を修正するのではなく、.xyzzy へ追記したあとへ
    (setq *javascript-indent-level* 4)
    (setq *javascript-indent-tabs-mode* t)
    などと書くのが一般的かなと思います。
    (javascript-mode.l のオリジナルが変更されて上書きする場合にいちいち修正せずにすみます)

    (setq 変数名 値) で変数への値の代入です。
    ちなみに defvar も基本は変数への値の代入ですが、変数が値を持たない場合のみに有効です。
    この場合、javascript-mode.l の中で defvar で変数に値を設定しているので、上書きするために setq を使います。

Leave a Reply

直近のつぶやきを読み込みちゅう...