推荐用于 JavaScript 编码的 Vim 插件?

IT技术 javascript vim
2021-02-23 21:59:56

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

5个回答

语法检查 / Linting

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

源代码浏览/标签列表

还有一种使用 Mozilla 的DoctorJS(以前称为jsctags添加标签列表的非常巧妙的方法,它也用于Cloud9 IDEAce 在线编辑器

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

新项目 - Tern.js

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

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

+1 为 TagBar(只知道 TagList!)
2021-04-22 21:59:56
在做之前第3步,cd到doctorjs和做到这一点:git submodule init && git submodule update然后执行步骤 3。
2021-04-27 21:59:56
目前doctorjs要求您按照此错误中的指定克隆递归git clone --recursive https://github.com/mozilla/doctorjs.git然后make install应该可以工作
2021-04-29 21:59:56
brew 命令实际上是 brew install ctags-exuberant
2021-05-01 21:59:56
2021-05-11 21:59:56

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

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

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

原生的 omnicomplete ( 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 块中的属性/值上按预期工作。然而,这种方法也有其缺点(奇怪的缩进……)。

您可能更喜欢使用Rok Garbas & co.的 snipMate 当前维护分支放在一起。
2021-04-16 21:59:56
你是如何完成那些看起来很酷的按键的?
2021-04-18 21:59:56
哈哈,是<kbd></kbd>。浏览器通常没有此标签的默认样式,感谢 SO 团队所做的额外工作。
2021-04-25 21:59:56
像很多 Vim 插件一样,acp 对文件类型非常敏感。如果缓冲区的文件类型是“html”,则 acp 和 omni complete 都不适用于嵌入式 JS/CSS/PHP。我要编辑我的答案,这里没有足够的编辑选项/空间。
2021-04-25 21:59:56
谢谢 romainl ,但是 autoComplPop 有问题,它只适用于 html 文件,没有 js、css 和 php
2021-05-04 21:59:56

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

我为 vim 编写了一个通用的自动格式化插件,它集成了 js-beautifier 等。在这里查看:github.com/Chiel92/vim-autoformat
2021-04-23 21:59:56
更漂亮 - 最好的
2021-04-23 21:59:56

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

嗯,在 Windows 上,您需要遵循特定说明,它需要一个 javascript 解释器。我还没有尝试在 Windows 上安装它,但是安装说明在自述文件中的页面下方,抱歉我无法提供更多帮助。
2021-04-25 21:59:56
谢谢,但我想我有问题看看img69.imageshack.us/img69/7629/11142565.png
2021-05-04 21:59:56

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

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

 setl sw=2 sts=2 et
~/.vimrcautocmd FileType javascript setlocal sw=2 ts=2 sts=2
2021-04-17 21:59:56