推荐用于 JavaScript 编码的 Vim 插件? [关闭]

Posted

技术标签:

【中文标题】推荐用于 JavaScript 编码的 Vim 插件? [关闭]【英文标题】:Recommended Vim plugins for JavaScript coding? [closed] 【发布时间】:2011-06-14 05:22:54 【问题描述】:

我是 JS 和 Vim 的新手。哪些插件可以帮助我编写 javascript 代码?

【问题讨论】:

为了让问题更清晰,并帮助 OP 在他们的英语中为以后的帖子提供帮助......它应该是:“嗨,我是 JS 和 Vim 的新手。哪些插件可以帮助我写 Javascript 代码?”你可以说“我是 to Javascript 和 vim 的新手”。您可以使用“what is”作为单数,例如“What is a_plugin that would help me...”或者您可以使用“which”作为复数,如下所示:“Which_plugins 会帮助我……”。另请注意,您应该使用“plugins would”而不是“plugins is”,因为这是一个假设。希望有帮助:-) @hendrixski - 投票重新开放。 有史以来最具建设性的非建设性问题。 我非常喜欢这个“不具建设性”的问题如何帮助我改善了我的工作流程。 由于问题(IMO 不公平)已关闭,我将在此处添加评论:NeoVim 有一个基于电子的前端,具有开箱即用的打字稿语言服务器自动完成功能(适用于 vanilla JS 也是!):onivim.io。它的边缘仍然有点粗糙,但我已经将它作为我的日常驱动程序使用了几个星期,并且没有遇到太多问题。它周围有一个非常好的社区,并且正在非常大力发展,所以我期待它在未来有好的发展!全面披露:我每月为该项目捐款,并计划在未来做出贡献。 【参考方案1】:

语法检查/检查

有一种非常简单的方法可以使用 Syntastic Vim 插件将 JSLint 或社区驱动的 jshint.com(IMO 更好)与 Vim 集成。请参阅my other post 了解更多信息。

源代码浏览/标签列表

还有一种非常巧妙的方法可以使用 Mozilla 的 DoctorJS(以前的 jsctags)添加标签列表,Cloud9 IDE 的 Ace online editor 也使用了该方法。

    使用您最喜欢的包管理器(Ubuntu 的apt-get、Mac 的home brew 等)安装以下包:
      exuberant-ctags
注意: 安装后确保运行ctags 实际运行exuberant-ctags 而不是操作系统预装的ctags。您可以通过执行ctags --version 来查找。 2.node (Node.js)
    从github克隆DoctorJSgit clone https://github.com/mozilla/doctorjs.git 进入DoctorJS dir 和make install(您还需要安装make 应用程序,但这是非常基本的)。
安装插件时存在一些错误,make install 暂时无法解决问题。现在我只是将 repo 的 bin/ 目录添加到我的 $PATH 中。请参阅DoctorJS's GitHub and issues pages 了解更多信息。
    安装TagBar Vim plugin(注意:它是 TagBar,而不是旧的臭名昭著的 TagList!)。 利润。 :)

新项目 - Tern.js

DoctorJS is currently dead。有一个新的有前途的项目叫做tern.js。它目前处于早期测试阶段,最终应该会取代它。

有一个项目ramitos/jsctags 使用 tern 作为其引擎。只需npm install -g 即可,标签栏会自动将其用于 javascript 文件。

【讨论】:

+1 为 TagBar(只知道 TagList!) 目前doctorjs要求你按照this bug,git clone --recursive https://github.com/mozilla/doctorjs.git的规定克隆递归,然后make install应该可以工作 windows 上的doctorjs:baumichel.blogspot.ca/2011/11/… 向 TagBar 添加其他文件类型:github.com/majutsushi/tagbar/wiki 在执行第 3 步之前,cd 进入 doctorjs 并执行以下操作:git submodule init && git submodule update。然后执行第 3 步。 brew命令其实是brew install ctags-exuberant【参考方案2】:

snipMate 模拟 TextMate 的 插入系统,并默认附带一堆有用的 JS sn-ps(以及其他)。添加您自己的非常容易。

javaScriptLint 允许您根据jsl. 验证您的代码

您还可以在 vim.org 上找到各种 JavaScript syntax files。试一试,看看哪一种最适合您和您的编码风格。

本机全功能 (ctrlx-ctrlo) 对我来说效果很好。您可以使用 autoComplPop 使其更具动态性,但有时会很烦人。

编辑,以回应 tarek11011 的评论:

acp 默认情况下不适用于 JavaScript,您必须对其进行一些调整。这是我的做法(肮脏的黑客,我仍然是 Vim 菜鸟):

在 vim-autocomplpop/plugin/acp.vim 中,我已将 phpjavascript(和 actionscript)添加到 behavs,使其看起来像这样:

let behavs = 
    \   '*'            : [],
    \   'ruby'         : [],
    \   'python'       : [],
    \   'perl'         : [],
    \   'xml'          : [],
    \   'html'         : [],
    \   'xhtml'        : [],
    \   'css'          : [],
    \   'javascript'   : [],
    \   'actionscript' : [],
    \   'php'          : [],
    \ 

在下面一点,有一系列看起来像这样的代码块:

"---------------------------------------------------------------------------
call add(behavs.ruby, 
    \   'command' : "\<C-x>\<C-o>",
    \   'meets'   : 'acp#meetsForRubyOmni',
    \   'repeat'  : 0,
    \ )

我复制了这个并稍微编辑了一下,看起来像这样:

"---------------------------------------------------------------------------
call add(behavs.javascript, 
    \   'command' : "\<C-x>\<C-o>",
    \   'meets'   : 'acp#meetsForRubyOmni',
    \   'repeat'  : 0,
    \ )

并且对 actionscript 和 php 做了同样的事情。

如果你想在 HTML 文档中编辑 JS/CSS,你可以在 Vim 的命令行中执行 :set ft=html.css.javascript 来制作 ctrlx- ctrlo 在 JS 块中的方法/属性名称和 CSS 块中的属性/值上按预期工作。然而,这种方法也有其缺点(奇怪的缩进……)。

【讨论】:

你是怎么做那些看起来很酷的击键的? 哈哈,是。浏览器通常没有这个标签的默认样式,感谢 SO 团队做了额外的工作。 谢谢 romainl,但是 autoComplPop 有问题,它只适用于 html 文件,没有 js 和 css 和 php 像很多 Vim 插件一样,acp 对文件类型非常敏感。如果缓冲区的文件类型是“html”,acp 和omni complete 都不适用于嵌入式JS/CSS/PHP。我要编辑我的答案,这里没有足够的编辑选项/空间。 您可能更喜欢使用 Rok Garbas & co. 的current maintenance branch of snipMate。放在一起。【参考方案3】:

这个插件也很有用:https://github.com/maksimr/vim-jsbeautify。 它为 javascript 提供了完全的自动格式化。 一键击键,您的代码看起来很漂亮。在粘贴代码 sn-ps 时也可以派上用场。 它利用了流行的 js-beautifier,它也可以作为在线应用程序找到。后者可以在这里找到:http://jsbeautifier.org/。

【讨论】:

我为 vim 编写了一个通用的自动格式化插件,它集成了 js-beautifier 等。在这里查看:github.com/Chiel92/vim-autoformat 更漂亮 - 最好的【参考方案4】:

我只使用一个特定于 js 的 vim 插件 - jslint.vim - https://github.com/hallettj/jslint.vim,它使用 jslints 规则验证您的代码,并为您提供语法错误。

【讨论】:

谢谢,但我想我有问题看看img69.imageshack.us/img69/7629/11142565.png 嗯,在 Windows 上,您需要遵循特定的说明,它需要一个 javascript 解释器。我还没有尝试在 Windows 上安装它,但是安装说明在 README 的页面下方,抱歉我无法提供更多帮助。【参考方案5】:

修复缩进和自动格式化 (Ctrl =):JavaScript Indent

要设置缩进宽度,请将javascript.vim 文件添加到 ~/.vim/ftplugin 目录中,内容如下(用于两个空格缩进):

 setl sw=2 sts=2 et

【讨论】:

~/.vimrc : autocmd FileType javascript setlocal sw=2 ts=2 sts=2

以上是关于推荐用于 JavaScript 编码的 Vim 插件? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

按文件类型设置 Vim 空白首选项

终端和vim中文编码问题

用于生成 Javascript 文档注释的 Vim 插件

是否有推荐的HTML / CSS / JavaScript编码风格指南? [关闭]

用于 Web 开发和设计的有用 Vim 插件(php、html、css、javascript)? [关闭]

你能推荐一个更好的用于 Unity C# 编码的 IDE 吗? [关闭]