在VIM上的脚本标记内正确缩进javascript

时间:2012-06-22 01:36:29

标签: javascript vim indentation

我需要帮助让VIM在脚本标记内正确缩进javascript。

这就是我想要的样子:

  <script type="text/javascript">
    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'UA-257015-24']);
    _gaq.push(['_trackPageview']);

    (function() {
      var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
      ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
      var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
    })();
  </script>

当我让VIM缩进时,这就是它的样子,这是非常好的,但不是最佳的:

  <script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-257015-24']);
_gaq.push(['_trackPageview']);

(function() {
  var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
  ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
  var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
  </script>

我的VIM文件大致是这些文件:http://github.com/lunks/vimfiles

我尝试将脚本附加到我要在vimrc上缩进的代码:

let g:html_indent_inctags = "body,head,tbody,ul,li,p,script"

但是,虽然它成功地缩进了script标记之后的内容,但它不再将其内容缩进为javascript,而只是文本。

如何让VIM按照我打算的方式在脚本标签中缩进Javascript?

2 个答案:

答案 0 :(得分:0)

尝试:set ft=html.javascript或在vim.org上搜索更好的HTML / JS缩进文件。

答案 1 :(得分:0)

这个人做到了:https://github.com/vim-scripts/indenthtml.vim

确保添加到您的vimrc:

let g:html_indent_script1 = "inc"
let g:html_indent_style1 = "inc"