■syntax
JavaScript syntax : Better JavaScrirpt syntax support
http://www.vim.org/scripts/script.php?script_id=1491
悪くはないです。ただし中身を見た感じFirefox + Dojoで使うことを想定されているようで、jQueryとかでprototype.jsでハイライトして欲しいオブジェクトがなかったりします。気に入らなければ適当に改造するのがよいと思います。それに、所詮syntaxですから無くてもあんまり困りません。
■indent
よさげなのが2つあります。まず一つ目、Ryan Fabellaさん作。スタンドアロンで動くもの。
OOP javascript indentation : This indentation script for OOP javascript (especially for EXTJS)
http://www.vim.org/scripts/script.php?script_id=1936
especially for EXTJSとか書かれてますがjQueryでも全く問題ないです。快適。
実際にインデントしてみた結果はこんな感じです。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaPlogNYUfPlWfbRBmY4Tov6PexKouA_onwnHtZbJgzbmTU7KQjKlrVLjoqvgglaTxlcIU3OtwmwT1LjlB4ZilY3MoaWa_fRGSGaabwdx-HnvS-DRimttNv0N9f8a9vIjzio-YgOKnOiA/s400/OOP+javascript+indent.jpg)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizYXRvg5LlErXrgzsf5AU9aZZ-vqZx1mBb_-lj5DTqi-eECnxb2nJ-fqtWk_tiD-S5pfdN96J5nyF8ftHikgPnYwMqfXiVPSPjWV5qOB2-osT-V3YXnTl8STc2LJakGSlT6AIPgB4f5rA/s400/OOP+javascript+indent+with+comment.jpg)
//でコメントアウトすると完全にレイアウトが壊れてしまいます。/**/を使えば問題ないようです。
二つ目、Tye Zdrojewskiさん作。別にプラグインが必要になるもの。
http://www.vim.org/scripts/script.php?script_id=1840
会社のマシンにはこちらを入れています。実際にインデントしてみた結果はこちら。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZBM97apjQah4jbWoQxxG1jfNPBhpDhiaH7OleirQrc-R4aWAw-x3WwfYtyIKWkcUHlwta-tmxXJPp0r61zmj1sHPi2lEYFToP0OcsR4B6DWvyrXbs78LZ5EcUJ7lmS4tstAExU_TUa7s/s400/IndentAnything+javascript+indent.jpg)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjF5T7mO6Rogitf2ut7p3dT37DvLvou7Oz7UTyHrpIzYK6dM8uyLAAn881c7otT4qW81PuqrOlYz1nYKdj64myrmoggKNW35kLl87EgcjS_6_vhyphenhyphen5VrdoU9phh1p17IEYr_28sW7beIsM0/s400/IndentAnything+javascript+indent+with+comment.jpg)
こちらは//だと問題ありませんが、/**/だと崩れてしまいます。あと、$(function(){hogehoge...});を綺麗にインデントできていません。
どちらも一長一短なので、どちらを使うかは好みの問題ですね。
■plugin
IndentAnything : Write indentations or enhance existing indentations without writing code
http://www.vim.org/scripts/script.php?script_id=1839
Tye Zdrojewskiさんのjavascript indentを動かすために必要です。なんか勝手にIndentAnything_htmlなんていうindentが付属で付いてきますので、既にhtmlのインデントを持っている人は注意です(IndentAnything_htmlはおまけなので入れなくても大丈夫だと思います)。