用vim写Nodejs,用啥补全插件比较好呢?

用vim写Nodejs,用啥补全插件比较好呢?

问下:)

3 回复

当然可以!在 Vim 中编写 Node.js 代码时,选择一个合适的代码补全插件非常重要。以下是一些流行的 Vim 插件,它们可以帮助你在编写 Node.js 代码时提高效率。

1. YouCompleteMe

YouCompleteMe 是一个非常强大的代码补全引擎,支持多种语言,包括 JavaScript 和 TypeScript。它还可以通过配置支持 Node.js 的特定功能。

安装方法

你可以使用 Vundle 或 vim-plug 来安装 YouCompleteMe。这里以 vim-plug 为例:

" 在你的 .vimrc 文件中添加以下内容
Plug 'Valloric/YouCompleteMe'

" 然后执行以下命令安装插件
:source ~/.vimrc
:PlugInstall

配置

为了使 YouCompleteMe 支持 JavaScript 和 TypeScript,你需要安装额外的依赖项。这通常涉及到编译 YCM 的核心部分:

git clone https://github.com/Valloric/YouCompleteMe.git ~/.vim/bundle/YouCompleteMe
cd ~/.vim/bundle/YouCompleteMe
./install.py --ts-completer

2. deoplete.nvim

deoplete.nvim 是一个基于异步插件框架的插件,支持多种语言,包括 JavaScript。它需要与一些语言服务器(如 TernJS)结合使用来提供最佳的代码补全体验。

安装方法

使用 vim-plug 安装 deoplete.nvim:

" 在你的 .vimrc 文件中添加以下内容
Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
Plug 'autozimu/LanguageClient-neovim', { 'do': 'bash install.sh' }

" 然后执行以下命令安装插件
:source ~/.vimrc
:PlugInstall

配置

配置 deoplete.nvim 和 LanguageClient-neovim:

let g:deoplete#enable_at_startup = 1

" LanguageClient 配置
let g:LanguageClient_serverCommands = {
    \ 'javascript': ['typescript-language-server', '--stdio'],
    \}

总结

  • YouCompleteMe:适合需要强大补全功能的开发者。
  • deoplete.nvim + LanguageClient-neovim:适合喜欢轻量级插件且希望使用语言服务器架构的开发者。

根据你的具体需求选择合适的插件,祝你编码愉快!


使用 Vim 编写 Node.js 时,一个非常受欢迎的代码补全插件是 coc.nvimcoc.nvim 是一个基于 Language Server Protocol (LSP) 的插件,能够提供强大的代码补全、跳转到定义、查找引用等功能。

安装步骤

  1. 安装 Vim 插件管理器:推荐使用 vim-plug

    sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
           https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
    
  2. 配置 .vimrc 文件

    call plug#begin('~/.vim/plugged')
    Plug 'neoclide/coc.nvim', {'branch': 'release'}
    Plug 'dense-analysis/ale'
    call plug#end()
    
  3. 安装插件: 打开 Vim 并运行 :PlugInstall 命令来安装所选的插件。

  4. 配置 coc.nvim: 在 .vimrc 中添加以下配置:

    " 使用 coc.nvim 进行代码补全
    inoremap <silent><expr> <CR> pumvisible() ? coc#_select_confirm() : coc#rpc#request('doKeyMap', ['i', '<CR>', '']) . "\n"
    inoremap <silent><expr> <Tab> pumvisible() ? coc#_select_confirm() : CocCompleteSelect()
    
    " 配置 LSP 设置
    let g:coc_global_extensions = [
        \ 'coc-tsserver',     " TypeScript 语言支持
        \ 'coc-eslint',       " ESLint 支持
        \ 'coc-prettier',     " Prettier 格式化
        \ ]
    
    " 开启诊断提示
    autocmd CursorHold * silent! call CocActionAsync('highlight')
    

示例代码

假设你要编写一个简单的 Node.js 脚本,比如一个读取文件的脚本:

const fs = require('fs');

fs.readFile('./example.txt', 'utf-8', (err, data) => {
    if (err) throw err;
    console.log(data);
});

使用 coc.nvim,当你开始键入 fs. 时,Vim 会自动弹出一个补全菜单,显示所有可用的方法,如 readFilewriteFile 等。这极大地提高了开发效率。

通过上述配置,coc.nvim 可以提供优秀的代码补全功能,并且与 ESLint 和 Prettier 集成,帮助你保持代码质量。

回到顶部