Vim Javascript自动完成选择评论作为建议

时间:2013-04-26 13:44:22

标签: javascript vim

我的vimrc中有以下行以启用Javascript完成:

autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS

问题在于,如果我正在处理包含大量注释的JS文件,例如:

// draws the map and the pieces depending on the state of the game

Vim从这些评论中选择字词,例如drawsmap等;并将它们视为可接受的代码建议,但它们显然不是。我怎样才能过滤掉它们?

2 个答案:

答案 0 :(得分:1)

JS自动完成需要动态类型推断,这对于非IDE文本编辑器来说很难。(JS没有静态类,你知道!)Vim可能只是实现模糊匹配算法来完成。 (我猜,因为我不亲自使用vim)。我认为Vim也会考虑评论,因为它可能不解释js!

您可以为Vim尝试新的Ternjs插件。你需要node.JS.确保你的Vim有Python支持。

在线演示在http://ternjs.net/

通常,由于该语言的动态特性,javascript自动完成很难实现。 Ternjs像javascript引擎一样进行类型推断,从而使自动完成更好。 (就个人而言,我在SublimeText中尝试过。除了初始加载和没有内置函数之外的很棒的经验,例如document.body.appendChild)

答案 1 :(得分:1)

Vim有许多适合不同需求的完成机制:关键字完成,文件名完成......和 omni completion ,这种完成最适合编程。

Omni完成通常是通过按<C-x><C-o>启动的,并且肯定永远不会从您的文件中的评论中选择建议。你确定你使用的是全向完成而不是别的吗?可能是<C-n><C-p>?有关完整列表,请参阅:h ins-completion

另外,那条线完全没用。假设您的filetype plugin indent on中有~/.vimrc,则完全没必要告诉Vim在JS文件中使用JS完成。