Долгое время лучшим вариантом для интеграции с Vim javascript было использование Tern.js в сочетании с YouCompleteMe (YCM). Это был несколько обременительный процесс, и я всегда завидовал своим коллегам, использующим VS Code с его потрясающей встроенной поддержкой JavaScript.

К счастью, теперь, когда Tern.js больше не поддерживается, YCM начал поддерживать tsserver, компилятор Microsoft TypeScript и анализатор языка - тот же движок, на котором работает VS Code. Он работает как для TypeScript, так и для JavaScript.

Для начала достаточно установить tsserver:

npm intall -g typescript

Затем следуйте обычным инструкциям по установке YCM. (примечание: вам, возможно, придется следовать их особым инструкциям, если вы использовали Tern.js в прошлом.)

Для правильной работы вашему проекту потребуется jsconfig.json файл в корневой папке. Я использую следующее для проекта create-react-app:

{
  "compilerOptions": {
    "target": "ES6",
    "module": "commonjs",
    "allowSyntheticDefaultImports": true,
    "baseUrl": "./src/",
    "paths": {
      "*": [
        "*"
      ]
    }
  },
  "exclude": [
    "node_modules",
    "**/node_modules/*"
  ]
}

Я также переназначил Ctrl-] в моем .vimrc, чтобы использовать команду YCM GoTo для быстрого перехода к определениям:

autocmd FileType javascript nmap <buffer> <C-]> :YcmCompleter GoTo<CR>

Теперь наслаждайтесь современным автозаполнением JavaScript в Vim!