推荐用于 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克隆
DoctorJS
:git 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 中,我已将 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 块中的属性/值上按预期工作。然而,这种方法也有其缺点(奇怪的缩进……)。
【讨论】:
你是怎么做那些看起来很酷的击键的? 哈哈,是。浏览器通常没有这个标签的默认样式,感谢 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 插件? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
是否有推荐的HTML / CSS / JavaScript编码风格指南? [关闭]