Vim Omni Completion在JS const上失败并让声明

时间:2019-06-15 20:04:46

标签: javascript vim omnicomplete

Omni完成仅查找使用var关键字声明的变量的模式。找不到用constlet声明的变量。

const apple
let blueberry
var carrot
// Omni Completion only finds patterns for 'carrot'

〜/ .vimrc

"Start pathogen plugin manager
execute pathogen#infect()

"Enable syntax, changing font/colors
syntax on

"FILETYPE DETECTION
"Enable file type detection
filetype on
"Enable loading file type plugins
filetype plugin on
"Enable loading indent file
filetype indent on

"TABS
"expand tabs to spaces
set expandtab
"spaces for automatic indents
set shiftwidth=2
"make existing tabs appear like 2 spaces
set softtabstop=2

"MAPS
"map jk to escape
:inoremap jk <Esc>

"map omnicompletion to space
"https://stackoverflow.com/questions/7722177/how-do-i-map-ctrl-x-ctrl-o-to-ctrl-space-in-terminal-vim
"For some reason <C-Space> is interpreted as <C-@>
inoremap <C-@> <C-x><C-o>

"APPEARANCE
"turn on relative line numbers
set number relativenumber

"Omnicompletion (autocompletion)
set omnifunc=syntaxcomplete#Complete

1 个答案:

答案 0 :(得分:0)

我在找到Tern之后,推断出Vim的Omni Completion功能只是缺少深度JavaScript补全功能。在Tern主页上:

  

Tern是JavaScript的独立代码分析引擎。它是   旨在与代码编辑器插件一起使用,以增强编辑器的   支持智能JavaScript编辑。提供的功能有:

     
      
  • 自动完成变量和属性
  •   
  • 函数参数提示
  •   
  • 查询表达式的类型
  •   
  • 寻找事物的定义
  •   
  • 自动重构
  •   
     

Tern是开源的(MIT许可),使用   JavaScript,并且能够在node.js和浏览器中运行。

然后,我找到了tern_for_vim GitHub存储库和一个tutorial for setting it up

如果使用Pathogen作为Vim插件管理器,请从tern_for_vim GitHub存储库自述文件中获取

  

如果您使用病原菌或类似药物,则可以克隆此   存储库到您的~/.vim/bundle(或等效目录)中。确保   您已经安装了node.js和npm(Tern是一个JavaScript程序),并且   通过在运行npm install来安装tern服务器   bundle/tern_for_vim目录。