[英]Vim Javascript autocompletion picks comments as suggestions
我的vimrc中有以下行以启用Javascript完成:
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
问题是,如果我正在处理包含大量注释的JS文件,例如:
// draws the map and the pieces depending on the state of the game
VIM拾取从这些评论的词,如draws
, map
等; 并将它们视为可接受的代码建议,但它们显然不是。 我怎样才能过滤掉它们?
JS自动完成需要动态类型推断,这对于非IDE文本编辑器来说很难。(JS没有静态类,你知道!)Vim可能只是实现模糊匹配算法来完成。 (我猜,因为我不亲自使用vim)。 我认为Vim也会考虑评论,因为它可能不解释js!
您可以尝试使用Vim的新Ternjs插件。 你需要node.JS. 确保你的Vim有Python支持。
在线演示在http://ternjs.net/
通常,由于该语言的动态特性,javascript自动完成很难实现。 Ternjs像javascript引擎一样进行类型推断,从而使自动完成更好。 (就我个人而言,我在SublimeText中尝试过。除了初始加载以外没有很棒的体验,也没有像document.body.appendChild这样的内置函数)
Vim有许多适合不同需求的完成机制:关键字完成,文件名完成......以及omni完成 ,最适合编程的完成类型。
Omni完成通常通过按<Cx><Co>
启动,并且肯定不会从您文件中的注释中选择建议。 你确定你使用的是全向完成而不是别的吗? <Cn>
或<Cp>
,也许? 请参阅:h ins-completion
以获取完整列表。
而且,这条线完全没用。 假设你的~/.vimrc
有filetype plugin indent on
,那么完全没必要告诉Vim在JS文件中使用JS完成。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.