首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Vim中格式化JS代码?

如何在Vim中格式化JS代码?
EN

Stack Overflow用户
提问于 2009-10-31 07:23:02
回答 7查看 23.3K关注 0票数 21

我有一点JavaScript..。

代码语言:javascript
复制
 15   $('.ajax_edit_address').each(function() {
 16     $(this).ajaxForm({
 17       target: $(this).parents('table.address').find('tr.address_header').children(':first'),
 18       success: function(response) {
 19         $('input, select, textarea', '.ajax_edit_address').removeClass('updating');
 20       }
 21     });
 22   });

这是我喜欢的格式。但是假设我刚输入完一些东西,我想把它整理一下。所以我在上面运行了Vim代码格式化程序...

代码语言:javascript
复制
=7j

结果就是...

代码语言:javascript
复制
 15   $('.ajax_edit_address').each(function() {
 16       $(this).ajaxForm({
 17 target: $(this).parents('table.address').find('tr.address_header').children(':first'),
 18 success: function(response) {
 19 $('input, select, textarea', '.ajax_edit_address').removeClass('updating');
 20 }     
 21 }); 
 22       });

Vim似乎在使用函数作为方法参数时遇到了问题。

这是我认为是我的.vimrc的相关部分...

代码语言:javascript
复制
:set cindent shiftwidth=2

" indent depends on filetype
:filetype indent on

:filetype plugin on

是否还需要安装或配置其他内容来格式化JS代码?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2009-10-31 23:31:31

最大的问题似乎是cindent无法识别这种类型的语法:

代码语言:javascript
复制
test({
  var b = 2;
});

它会把它变成这样:

代码语言:javascript
复制
test({
    var b = 2;
    });

如果您处理了这种情况,我可以想象缩进对于jQuery语法来说不会那么糟糕。但是这需要你编写一个自定义的javascript缩进文件。此外,您还必须编辑html缩进文件,以使其不对带有javascript内容的脚本标记使用cindent。

我认为还没有人成功地为javascript创建了jquery/prototype兼容的缩进文件。现有的javascript缩进脚本都有缺陷。

票数 2
EN

Stack Overflow用户

发布于 2010-09-16 09:34:38

VIM插件Jsbeautify可以正确处理jQuery。它是在线Jsbeautify的vim插件版本。

票数 23
EN

Stack Overflow用户

发布于 2013-11-22 01:07:16

有一个简单得多的解决方案,不需要vim插件。

js-beautify安装到您的系统python:

代码语言:javascript
复制
pip install jsbeautifier

然后将以下内容添加到您的.vimrc:

代码语言:javascript
复制
autocmd FileType javascript setlocal equalprg=js-beautify\ --stdin

就这样。

运行:help equalprg查看其工作原理。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1652765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档