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


125

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


6
为了使问题更清楚,并帮助OP使用其英语撰写以后的文章,它应该显示为:“嗨,我是JS&Vim的新手。哪些插件可以帮助我编写Javascript代码?” 你可以说“我是新的Javascript和VIM”。您可以将“ what is”用于单数形式,例如“什么是a_plugin可以帮助我...”,也可以将“ that ”用于复数形式,例如:“ Where_plugins可以帮助我...”。还要注意的而不是“插件 ”你应该使用“插件 ”,因为它是一个假设。希望能
有所

3
@hendrixski-投票以重新打开它。
ocodo

8
有史以来最具建设性的非建设性问题。
弗拉迪斯拉夫·佐罗夫(Fladislav Zorov)2014年

8
我非常喜欢这个“非建设性”的问题如何帮助我改善了我的工作流程。
MaiaVictor 2014年

由于问题(不公平地是IMO)已经关闭,所以我在这里添加评论:NeoVim有一个基于电子的前端,具有开箱即用的打字语言服务器自动完成功能(也适用于Vanilla JS!):onivim.io。它的边缘仍然有些粗糙,但是我已经将它用作我的日常驱动了几个星期了,并且没有太多问题。它周围有一个非常好的社区,并且正在非常繁重的开发中,所以我希望将来会有美好的事情!完全披露:我每月向该项目捐款,并计划将来捐款。
Parker Ault

Answers:


116

语法检查/整理

有一种非常简单的方法,可以使用Syntastic Vim插件将JSLint或社区驱动的jshint.com(更好的IMO)与Vim集成在一起。请参阅我的其他文章以获取更多信息。

源代码浏览/标签列表

还有一种非常干净的方法,可以使用Mozilla的DoctorJS(以前称为jsctags)添加标签列表,该方法也用在Cloud9 IDEAce在线编辑器中

  1. 使用您喜欢的软件包管理器(Ubuntu的apt-get,Mac的主目录brew等)安装以下软件包:
    1. exuberant-ctags
      • 注意:安装后,请确保运行ctags实际运行,exuberant-ctags而不是预先安装的操作系统ctags。您可以通过执行查找ctags --version
    2. node (Node.js)
  2. DoctorJS从github 克隆:git clone https://github.com/mozilla/doctorjs.git
  3. 进入DoctorJSdir和make install(您还需要make安装该应用程序,但这是非常基本的)。
    • 安装插件存在一些错误,make install暂时无法解决问题。现在,我只是将存储库bin/目录添加到$ PATH中。有关更多信息,请参见DoctorJS的GitHub和发行页面
  4. 安装TagBar Vim插件注意:这是TagBar,而不是臭名昭著的TagList!)。
  5. 利润。:)

新项目-Tern.js

DoctorJS目前已死亡。有一个名为tern.js的新项目。它目前处于测试阶段,应该最终取代它。

有一个项目ramitos / jsctags,它使用tern作为引擎。就是npm install -g这样,标记栏会自动将其用于javascript文件。


5
+1的TagBar(只知道TagList!)
RobM 2011年

9
目前doctorjs中规定需要你克隆递归这个buggit clone --recursive https://github.com/mozilla/doctorjs.git然后进行安装应该工作
安迪·雷


6
在执行步骤3之前,将CD插入doctorjs并执行以下操作:git submodule init && git submodule update。然后做第3步
glortho

2
brew命令实际上是brew install ctags-exuberant
sym3tri 2012年

17

snipMate模拟TextMate的插入系统,默认情况下附带了一堆有用的JS代码片段(以及其他片段)。添加您自己的极其简单。

javaScriptLint允许您根据jsl验证代码

您也可以在vim.org上找到各种JavaScript语法文件。试试看,看看哪种最适合您以及您的编码风格。

原生全能(ctrlx- ctrlo)对我来说效果很好。您可以使用autoComplPop使它更具动态,但有时可能会令人讨厌。

编辑,以回应tarek11011的评论:

默认情况下,acp不适用于JavaScript,您必须对其进行一些调整。这是我的操作方法(肮脏的hack,我仍然是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块中的属性/值上工作。但是,这种方法也有其缺点(奇怪的缩进……)。


您如何完成那些酷炫的按键动作?
Maxim Sloyko 2011年

1
哈哈,是<kbd> </ kbd>。浏览器通常没有此标签的默认样式,对SO团队所做的额外工作表示敬意。
romainl 2011年

谢谢romainl,但是autoComplPop有一个问题,它仅适用于HTML文件,没有js,css和php
Tarek Saied

像许多Vim插件一样,acp对文件类型非常敏感。如果缓冲区的文件类型为“ html”,则acp或omni complete均不适用于嵌入式JS / CSS / PHP。而且我要编辑我的答案,这里没有足够的编辑选项/房间。
romainl 2011年

您可能更喜欢使用Rok Garbas&co 的snipMate当前维护分支。放在一起。
thisgeek 2012年

8

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


3
我为vim编写了一个通用的自动格式化插件,该插件集成了js-beautifier等。在这里查看:github.com/Chiel92/vim-autoformat
Chiel 10

prettitier-最好的
Alex Shwarc

6

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



嗯,在Windows上,您需要遵循一些具体说明,它需要一个javascript解释器。我没有尝试在Windows上安装它,但是安装说明在自述文件的页面稍下,对不起,我在那里没有更多帮助。
斯科特,

3

修复缩进和自动格式设置(Ctrl =):JavaScript缩进

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

 setl sw=2 sts=2 et

~/.vimrcautocmd FileType javascript setlocal sw=2 ts=2 sts=2
JuanPablo
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.