使用vim来编写javascript代码

2009年02月10日 | 13,688 次浏览 | 标签: , | 12条评论  

如果你喜欢vim,平时也写写javascript,那么这篇文章就是为你而写的:)如果你喜欢javascript,但是还没有找到合适的编辑器,那么请give vim a try

以下假定你对vim已经有所了解,另外所有插件在gnome-terminal中都测试过,在其他终端中应该不会有太大问题。

  1. 语法高亮-javascript.vim
    http://www.vim.org/scripts/script.php?script_id=1491
    该插件安装在~/.vim/syntax/目录下。下载后需要修改一个地方,一般javascript编程,折叠层数不需要太深,我自己设置为1,即:
    setlocal foldlevel=1。
    需要在.vimrc中加入

    " 打开javascript折叠
    let b:javascript_fold=1
    " 打开javascript对dom、html和css的支持
    let javascript_enable_domhtmlcss=1
    

    截屏(点击可查看大图)
    语法高亮

  2. 变量标记和检查-mark.vim
  3. http://www.vim.org/scripts/script.php?script_id=1238
    该插件安装到~/.vim/plugin/目录。在对变量进行检查和跟踪的时候会很有用,同时还可以防止变量名拼写错误。打开/关闭变量标记的默认快捷键是m。也可以使用v选中一段进行标记。
    截屏(点击可查看大图)
    变量标记和检查

  4. 字典补全-javascript.dict
  5. http://lazy-people.org/browser/project/dotfiles/users/dann/.vim/dict/javascript.dict?rev=122
    该字典可以放在任意目录,我一般放在~/.vim/dict/目录中。使用字典补全需要在插入模式下,快捷键是Ctrl+X,然后Ctrl+K。有些javascript内置函数名超长,经常记不住,这时候字典就比较有用。字典其实就是一个普通文件,里面是关键词的列表,一行一个,所以你也可以加入一些你在项目中经常使用的函数。
    另外需要在.vimrc中加入

    "设置字典 ~/.vim/dict/javascript.dict是字典文件的路径
    autocmd FileType javascript set dictionary=~/.vim/dict/javascript.dict
    

    截屏(点击可查看大图)
    字典补全

  6. YUI自动补全
  7. 待续…

  8. 运行代码片段-spidermonkey
  9. http://www.mozilla.org/js/spidermonkey/
    有时想测试一个小东西,没有必要写一个html然后到浏览器去运行,spidermonkey能帮你忙,而且spidermonkey还能作一些很geek的事情。ubuntu系统安装很简单,sudo apt-get install spidermonkey-bin,其他系统请参考网站的文档。安装完毕后,输入js,则会进入一个js shell,和python类似。输入help()回车,会看到一个简单的帮助。
    在vim编写javascript代码后,输入!js %即可执行当前文件的代码。也可以选中一段代码然后执行:’<,'>!js,这样会插入执行结果到当前文件。
    截屏(点击可查看大图)
    spidermonkey

  10. 语法检查和快速调试-javascriptlint
  11. http://www.javascriptlint.com/
    这个工具的代码基于Douglas Crockford’sjslint,在代码检查方面很强大,可以说非常苛刻。如果从头开始写代码,建议经常用它来检查代码,能明显提高代码的质量。下载时不要从代码库check out最新版本,而是下载稳定的0.3.0版本。

    cd jsl-0.3.0/src/ #这里的jsl-0.3.0是解压缩目录
    make -f Makefile.ref all
    cd Linux_All_DBG.OBJ/
    cp jsl jscpucfg /home/xp/bin/js/ #/home/xp/bin/js/要拷贝到的目录,可以任意位置
    cd /home/xp/bin/js/
    jsl -help:conf > jsl.conf #生成默认配置文件
    

    另外需要在.vimrc中加入

    "设置javascriptlint
    autocmd FileType javascript set makeprg=/home/xp/bin/js/jsl -nologo -nofilelisting -nosummary -nocontext -conf '/home/xp/bin/js/jsl.conf' -process %
    autocmd FileType javascript set errorformat=%f(%l): %m
    autocmd FileType javascript inoremap <silent> <F9> <C-O>:make<CR>
    autocmd FileType javascript map <silent> <F9> :make<CR>
    

    使用时使用:make命令即可,或者使用F9快捷键。还需要理解的是quickfix,输入命令help quickfix看以下文档,主要涉及的命令有:cw :cn :cp等。
    截屏(点击可查看大图)
    javascriptlint

  12. 其他常用插件
    虽然我不怎么用,但是可能对你有一些帮助
    winmanager 类似资源管理器,如果从editplus或者其他图形编辑器转过来的朋友,这个可能很有用。
    截屏(点击可查看大图)
    winmanager
    minibufexplorer 类似标签页,管理当前打开的文件
    Tlist可以显示代码结构

相关文章

评论(12)

  1. z.Yleo77 发表于2009年06月13日 7:36 pm

    这篇文章对于写js的vim配置真是到了一个境界。。。没有杂的,只有最需要的。。

  2. Proguru 发表于2009年06月17日 4:23 pm

    我对你vim用的colorscheme比较感兴趣,是用的哪个啊?

  3. fybird 发表于2009年09月17日 6:38 pm

    很不错,学到了很多东西%谢谢

  4. asins 发表于2010年01月17日 1:08 am

    我在使用vim编辑js时,VIM的缩进总是会出现错误,比如在一JS文件输入
    var a = {
    b: function(){在这里回车后会发现缩进错误,不知有没有什么改进的方法啊!
    }

  5. landyvanroy 发表于2010年04月02日 2:59 pm

    关注yui自动补全

  6. shepherdwind 发表于2010年09月23日 2:28 pm

    正和我意,非常感谢。在linux下还是一切都在终端界面下解决好。最近我gvim无法启动了,真奇怪,好像是我在编译7.3的时候出的问题,不知为啥,提示是“Vim: 拦截到致命信号(deadly signal) SEGV”。

  7. shepherdwind 发表于2010年09月23日 3:50 pm

    在推荐一下一个使用javascriptlint.vim插件的方法,直接下载插件,cp到plugin目录中,然后把本文所编译好的jsl文件cp到/bin/中就可以用了。

  8. charseer 发表于2010年11月25日 6:03 pm

    你好,打扰请问下
    我用javascriptlint 的时候提示出现:
    ror detected while processing FileType Auto commands for “javascript”:
    E518: Unknown option: -nologo
    E518: Unknown option: %m

    这是为什么呢?

  9. 刷钻 发表于2010年12月21日 11:10 am

    呵呵,来拜访了,脚个脚印。。。

  10. aloo 发表于2011年02月03日 11:06 pm

    高山仰止,望脊项背啊~~~
    太受用了

  11. landyvanroy 发表于2011年04月21日 8:50 am

    同样,关注YUI自动补全

  12. 阿正 发表于2011年11月23日 11:03 am

    不错!

Trackbacks(1)

  • 2009/02/11 - 潘魏增|学海无涯 » 文章归档 » 使用vim的一些tip

    [...] 学会用make和quickfix,输入命令help make和help quickfix查看帮助。如果你编写c/c++,那么这个肯定需要掌握,如果你写javascript,可以看我之前写的教程中的最后部分使用javascriptlint语法检查和快速调试。 [...]

发表评论

最受欢迎

评论最多