LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 937|回复: 1

【整理】jsLint for Vim

[复制链接]
发表于 2009-3-10 14:47:25 | 显示全部楼层 |阅读模式
原文连接: http://www.gracecode.com/Archive/Display/2902

我们在编写 Javascript 时,Debug 是很痛苦的过程,而且有些语法问题虽使用 Firebug 能很快定位,但毕竟影响效率。

这里有个 Vim 插件,能使用 jsLint 帮助检查 Javascript 脚本中常见的语法错误,所以这篇文章可以帮助延长 F5 的寿命。



首先,下载 jsLint,解压缩到某个目录,然后将这个目录加入到 PATH 环境变量中。然后,下载 Vim 的 jsLint 插件,将它扔到 Vim 的 plugin 目录中即可。

当保存编辑好的 Javascript 文件时,插件就会调用 jsLint 检查文件是否存在语法错误。当然可以配置相应的配置选项(更多的选项可以参考其 Vim 插件脚本内容),例如

[php]
" 指定 jsLint 调用路径,通常不用更改
let g:jslint_command = 'jsl'
[/php]

[php]
" 指定 jsLint 的启动参数,可以指定相应的配置文件
let g:jslint_command_options = '-nofilelisting -nocontext -nosummary -nologo -process'
[/php]

[php]
" 插件的主要调用方式
autocmd BufWritePost,FileWritePost *.js call JsonLint()
[/php]

其实核心函数是 JsonLint() ,所以可以绑定快捷键,用于在任何时候检查错误。例如

[php]
map <C-s><C-j> :call JsonLint()<cr>
[/php]

这样同时按 Ctrl + S、Ctrl + J 就可以检查 Javascript 语法有无问题了。
 楼主| 发表于 2009-3-10 16:46:49 | 显示全部楼层
发现个不大不小的问题。就是在 Windows 环境中如果 Vim 本身设置了 utf-8 编码,由于与控制台编码不一致(控制台为 gbk 边阿明)造成 Javascript 文件在中文目录下不能正确启动 jsLint。

这里有个不完全的解决方案,更改对应的代码(从 34 行开始,加入判断)

[php]
  let jsl_command = g:jslint_command . ' ' . g:jslint_command_options . ' ' . current_file

  if has("win32") && v:lang == 'zh_CN.utf-8'
    let jsl_command = iconv(jsl_command, 'utf-8', 'gbk')
  endif

  let cmd_output = system(jsl_command)
  
  if has("win32") && v:lang == 'zh_CN.utf-8'
    let cmd_output = iconv(cmd_output, 'gbk', 'utf-8')
  endif
[/php]

如果自行修改觉得麻烦,就用我的修改后的插件吧。下载 http://www.gracecode.com/Archive/Display/2902
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表