我是 JS 和 Vim 的新手。哪些插件可以帮助我编写 Javascript 代码?
推荐用于 JavaScript 编码的 Vim 插件?
语法检查 / Linting
有一种非常简单的方法可以使用 Syntastic Vim 插件将 JSLint 或社区驱动的jshint.com(这是更好的 IMO)与 Vim 集成。有关更多信息,请参阅我的另一篇文章。
源代码浏览/标签列表
还有一种使用 Mozilla 的DoctorJS(以前称为jsctags)添加标签列表的非常巧妙的方法,它也用于Cloud9 IDE的Ace 在线编辑器。
- 使用您最喜欢的软件包管理器(Ubuntu 的
apt-get
、Mac 的homebrew
等)安装以下软件包:exuberant-ctags
- 注意:安装后确保运行
ctags
实际运行exuberant-ctags
而不是操作系统的预安装ctags
. 你可以通过执行找到ctags --version
。2.node
(Node.js)
DoctorJS
从github克隆:git clone https://github.com/mozilla/doctorjs.git
- 进入
DoctorJS
目录和make install
(您还需要make
安装该应用程序,但这是非常基本的)。
- 安装插件存在一些错误,
make install
暂时无法解决问题。现在我只是将 repo 的bin/
目录添加到我的 $PATH 中。有关更多信息,请参阅DoctorJS 的 GitHub 和问题页面。
- 安装TagBar Vim 插件(注意:它是 TagBar,而不是旧的臭名昭著的 TagList!)。
- 利润。:)
新项目 - Tern.js
DoctorJS 目前已死。有一个新的有前途的项目叫做tern.js。它目前处于早期测试阶段,最终应该会取代它。
有一个项目ramitos/jsctags使用 tern 作为其引擎。就npm install -g
这样,标签栏会自动将它用于 javascript 文件。
snipMate模拟 TextMate 的⇥插入系统,并默认带有一堆有用的 JS 片段(以及其他)。添加自己的内容非常容易。
javaScriptLint允许您根据jsl验证您的代码。
您还可以在 vim.org 上找到各种JavaScript 语法文件。尝试一下,看看哪一种最适合您和您的编码风格。
原生的 omnicomplete ( ctrlx- ctrlo) 对我来说效果很好。您可以使用autoComplPop使其更具动态性,但有时会很烦人。
编辑,回应tarek11011的评论:
默认情况下,acp 不适用于 JavaScript,您必须稍微调整一下。这是我是如何做到的(肮脏的黑客,我仍然是 Vim 菜鸟):
在 vim-autocomplpop/plugin/acp.vim 中,我添加了php
和javascript
(和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 块中的属性/值上按预期工作。然而,这种方法也有其缺点(奇怪的缩进……)。
这个插件也很有用:https : //github.com/maksimr/vim-jsbeautify。它为 javascript 提供了完全自动格式化。一键敲击,你的代码看起来很漂亮。在粘贴代码片段时它也可以派上用场。它使用流行的 js-beautifier,它也可以作为在线应用程序找到。后者可以在这里找到:http : //jsbeautifier.org/。
我只使用一个特定于 js 的 vim 插件 - jslint.vim - https://github.com/hallettj/jslint.vim,它使用 jslints 规则验证您的代码并为您提供语法错误。
修复缩进和自动格式化(Ctrl =):JavaScript Indent
要设置缩进宽度,请将javascript.vim
文件添加到 ~/.vim/ftplugin 目录中,内容如下(两个空格缩进):
setl sw=2 sts=2 et