资讯专栏INFORMATION COLUMN

VIM自动补全插件:deoplete

Ajian / 1442人阅读

摘要:添加补全源一般如果没有安装任何源,则自动补全只会根据当前文件已有的名字进行猜测。我们要的效果是根据语言的特性,补全引用自带库第三方库的所有类函数等。

Nvim用的是Shougo开发的NCM,但是在VIM 8+就要用同一个作者开发的Deoplete.

参考官网:Shougo/deoplete.nvim

注意:这里只讲怎么给vim8安装。

安装 第一步:安装所有依赖
# 安装VIM 8
# ....

# 安装Python3
# ....

# 安装vim的Python-client库pynvim
pip2 install --user pynvim
pip3 install --user pynvim

# 安装插件 python的neovim库
pip2 install --user neovim
pip3 install --user neovim
第二步:在vimrc中添加配置
set encoding=utf-8

set pyxversion=3
" 或
set pyxversion=2

" Python3的可执行文件位置
g:python3_host_prog = "/path/to/bin/python3"


" 在插件管理器中,比如vim-plug中,加入如下:
if has("nvim")
  Plug "Shougo/deoplete.nvim", { "do": ":UpdateRemotePlugins" }
else
  Plug "Shougo/deoplete.nvim"
  Plug "roxma/nvim-yarp"
  Plug "roxma/vim-hug-neovim-rpc"
endif
let g:deoplete#enable_at_startup = 1

保存重启vim,并在vim中输入命令:PlugInstall安装插件。

第三步:在vim中输入测试命令

以下命令不能报错才行:

:python3 import neovim 不报错,或

:python2 import neovim 不报错

:echo has("pythonx") 返回1

:echo exepath("python3") 能够显示python3的执行文件位置,或

:echo exepath("python2") 能够显示python2的执行文件位置

:echo neovim_rpc#serveraddr() 能显示服务器的IP地址

使用方法

在Insert模式下,直接输入文字就会弹出自动补全。然后用Ctrl+nCtrl+p上下选择。

Add Completion Source 添加补全源

一般如果没有安装任何源,则自动补全只会根据当前文件已有的名字进行猜测。这肯定不是我们要的。
我们要的效果是:根据语言的特性,补全引用自带库、第三方库的所有类、函数等。

参考官方推荐的各语言的补全源:Completion Sources

[Python Source]

Deoplete的Python推荐使用deoplete-jedi
参考:zchee/deoplete-jedi

安装依赖:

Neovim and neovim/python-client

python-client: pynvim

pip2 install pynvim --user

pip3 install pynvim --user

jedi: pip install jedi --user

安装方法是利用vim-plug管理器:

Plug "zchee/deoplete-jedi"

默认下,什么都不用配置,安装好后就可以很好的用起来了。

[C/C++ Source]

C/C++用的是deoplete-clangx插件,需要本机安装Clang轻量级C编译器支持。

参考:Shougo/deoplete-clangx

依赖:

本机安装Clang

已经能正常使用deoplet

然后直接在插件管理器中加入安装即可:

Plug "Shougo/deoplete-clangx"
更新

如果本机没有pip2pip3的话,最方便的是用包管理器重新安装。

Mac上:

brew install python@2
brew reinstall python@2

Ubuntu上:

sudo apt-get install -y python-pip python3-pip
更新

如果以上这些都很难满足,那么是时候考虑重新编译VIM了。

如果是Mac的话,可以用brew install vim --with-cscope --with-python --with-lua --override-system-vim直接按照可选的语言支持编译vim。

测试可行

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/25063.html

相关文章

  • 使用 Vim 搭建 Lua 开发环境

    摘要:使用搭建开发环境原文链接是一个模块化的,针对这一语言的支持主要依靠模块以及与之相关的其它模块。在阅读这篇文章之前,可以先阅读使用搭建基础的开发环境,对语言相关以外的功能有一个大致的了解。该模块默认使用这一异步语法检查工具。 使用 Vim 搭建 Lua 开发环境 原文链接:https://spacevim.org/cn/use-v... SpaceVim 是一个模块化的 Vim IDE...

    Freeman 评论0 收藏0
  • SpaceVim - 一个模块化加载的vim配置

    摘要:是一个社区驱动的模块化配置集合,其中包含了多种功能模块,并且针对做了功能优化。有多种功能模块可供选择,用户只需要选择需要的模块,就可以配置出一个适合自己的开发环境。 SpaceVim 中文手册 showImg(https://segmentfault.com/img/remote/1460000007968382);showImg(https://segmentfault.com/im...

    megatron 评论0 收藏0
  • 如何让 vim 成为我们的神器

    摘要:是一个上古神器,刚刚接触的同学可能很难驾驭,本篇文章主要带领大家快速入门,并持续分享当前流行的一些安装新手指南教程移动光标向前移动两个单词向前移动到第个单词的末尾移动到行首当前行的末尾文件第一行文件最后一行行号指定行跳转回之前的位置返回 showImg(https://segmentfault.com/img/bVXn2m?w=1920&h=1080); Vim 是一个上古神器,刚刚...

    Scorpion 评论0 收藏0
  • Vim 写 Python 的最佳实践

    摘要:本文内容整理自我在知乎的回答用写的最佳实践是什么,下面的内容是对知乎旧有回答的一个补充,尤其有一些主要针对如果想要更多内容,可以查看知乎对于该问题的一些回答。主要是针对提供的内容进行再提取进行展示。 先来晒个图: showImg(https://segmentfault.com/img/bVIDeB?w=1434&h=1430); 对于一些 Python 的小项目,使用 vim 是一个...

    TANKING 评论0 收藏0
  • Vim 写 Python 的最佳实践

    摘要:本文内容整理自我在知乎的回答用写的最佳实践是什么,下面的内容是对知乎旧有回答的一个补充,尤其有一些主要针对如果想要更多内容,可以查看知乎对于该问题的一些回答。主要是针对提供的内容进行再提取进行展示。 先来晒个图: showImg(https://segmentfault.com/img/bVIDeB?w=1434&h=1430); 对于一些 Python 的小项目,使用 vim 是一个...

    cloud 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<