macos 10.15.3 安装vim+python3 +ycm自动补全+第三方库补全

21 篇文章 0 订阅
8 篇文章 0 订阅

效果:2020053104464962.gif

 

macos 10.15.3   Catalina 默认安装是 vim8.1 / python2.7.16/python3.7.3  . 

vim8.1 没有带python3支持,需要更新到最新版8.2就支持了。

1. 用brew 安装vim  (没有装brew工具的参考: mac下镜像飞速安装Homebrew教程

brew install vim 

brew 是把vim装在  /usr/local/Cellar 。 并做了链接到 /usr/local/opt  . 同时还安装了gdbm gettext python3.8等软件。

xulong@xulongdeMac-mini Cellar % pwd
/usr/local/Cellar
xulong@xulongdeMac-mini Cellar % ls
gdbm		libyaml		openssl@1.1	python@3.8	ruby		vim
gettext		lua		perl		readline	sqlite		xz


xulong@xulongdeMac-mini opt % pwd
/usr/local/opt
xulong@xulongdeMac-mini opt % ls -l
total 0
lrwxr-xr-x  1 xulong  admin  21  5 26 21:07 gdbm -> ../Cellar/gdbm/1.18.1
lrwxr-xr-x  1 xulong  admin  26  5 26 21:07 gettext -> ../Cellar/gettext/0.20.2_1
lrwxr-xr-x  1 xulong  admin  23  5 26 21:07 libyaml -> ../Cellar/libyaml/0.2.4
lrwxr-xr-x  1 xulong  admin  21  5 26 21:07 lua -> ../Cellar/lua/5.3.5_1
lrwxr-xr-x  1 xulong  admin  21  5 26 21:07 lua@5.3 -> ../Cellar/lua/5.3.5_1
lrwxr-xr-x  1 xulong  admin  28  5 26 21:07 openssl -> ../Cellar/openssl@1.1/1.1.1g
lrwxr-xr-x  1 xulong  admin  28  5 26 21:07 openssl@1.1 -> ../Cellar/openssl@1.1/1.1.1g
lrwxr-xr-x  1 xulong  admin  23  5 26 21:07 perl -> ../Cellar/perl/5.30.2_1
lrwxr-xr-x  1 xulong  admin  23  5 26 21:07 perl@5.30 -> ../Cellar/perl/5.30.2_1
lrwxr-xr-x  1 xulong  admin  26  5 26 21:07 python@3.8 -> ../Cellar/python@3.8/3.8.2
lrwxr-xr-x  1 xulong  admin  24  5 26 21:07 readline -> ../Cellar/readline/8.0.4
lrwxr-xr-x  1 xulong  admin  22  5 26 21:07 ruby -> ../Cellar/ruby/2.7.1_2
lrwxr-xr-x  1 xulong  admin  22  5 26 21:07 ruby@2.7 -> ../Cellar/ruby/2.7.1_2
lrwxr-xr-x  1 xulong  admin  23  5 26 21:07 sqlite -> ../Cellar/sqlite/3.31.1
lrwxr-xr-x  1 xulong  admin  23  5 26 21:07 sqlite3 -> ../Cellar/sqlite/3.31.1
lrwxr-xr-x  1 xulong  admin  22  5 26 21:08 vim -> ../Cellar/vim/8.2.0800
lrwxr-xr-x  1 xulong  admin  18  5 26 21:07 xz -> ../Cellar/xz/5.2.5
xulong@xulongdeMac-mini opt % 

重启 终端后,检查vim的支持情况 , 已经支持python3了,但是python2的支持去掉了。

xulong@xulongdeMac-mini opt % cd ~

xulong@xulongdeMac-mini ~ % vim --version | grep python

+comments          +libcall           -python            +visual

+conceal           +linebreak         +python3           +visualextra

2.安装插件管理工具 

git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

 

3.安装 YCM 补全插件

xulong@xulongdeMac-mini ~ % vim ~/.vimrc

#添加下内容到 vimrc文件里

 75 " vundle 环境设置
 76 filetype off
 77 set rtp+=~/.vim/bundle/Vundle.vim
 78 " vundle 管理的插件列表必须位于 vundle#begin() 和 vundle#end() 之间
 79 call vundle#begin()
 80 Plugin 'VundleVim/Vundle.vim'
 81 Plugin 'Valloric/YouCompleteMe'
 82 "Plugin 'altercation/vim-colors-solarized'
 83 "Plugin 'tomasr/molokai'
 84 "Plugin 'vim-scripts/phd'
 85 "Plugin 'Lokaltog/vim-powerline'
 86 "Plugin 'octol/vim-cpp-enhanced-highlight'
 87 "Plugin 'Raimondi/delimitMate'
 88 " 插件列表结束
 89 call vundle#end()

重新打开vim 并执行  :BundleInstall    ,vim会开始安装插件,会需要很长时间,如里中间有报错可能是timeout了

可以尝试设置git的参数,重新再来。

xulong@xulongdeMac-mini ~ % git config --global http.postBuffer 524288000
xulong@xulongdeMac-mini ~ % git config --global http.lowspeedlimit=0
xulong@xulongdeMac-mini ~ % git config --global http.lowspeedtime=999999

提示完成后,还需要编译,进入 YCM插件 目录,安装CMake,然后用之前装vim时一起装好的python运行 install.py

xulong@xulongdeMac-mini YouCompleteMe % pwd                                                                      
/Users/xulong/.vim/bundle/YouCompleteMe

xulong@xulongdeMac-mini YouCompleteMe % brew install CMake        
xulong@xulongdeMac-mini YouCompleteMe % /usr/local/opt/python@3.8/bin/python3.8  install.py

至此 vim+ycm 补全功能 安装完成了

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZhbmdrYWlsb3Zl,size_16,color_FFFFFF,t_70

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZhbmdrYWlsb3Zl,size_16,color_FFFFFF,t_70

4. 第三方库补全的支持(重点)

目前的情况只能补全python自带的库,不能补全第三方库,原因就是之前brew 安装 vim 时,自带了一个python,那么vim内部使用的是这个自带的python,找模块时就是 按这个python 的 path 去找的。 不会去找 系统的python 更不会找pyenv 装的python了,那么外部python装的三方库自然就不会被发现。也就不能补全了。 下图看 vim内置的python

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZhbmdrYWlsb3Zl,size_16,color_FFFFFF,t_70watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZhbmdrYWlsb3Zl,size_16,color_FFFFFF,t_70

解决办法就是往 vim 内置的python 注入 模块路径

方法3:目前这是最稳定简单的方法了

vim ~/.vim/bundle/YouCompleteMe/.ycm_extra_conf.py  #在return sys_path 前添加下面代码

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZhbmdrYWlsb3Zl,size_16,color_FFFFFF,t_70

修改.vimrc文件 ,加入下面代码

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZhbmdrYWlsb3Zl,size_16,color_FFFFFF,t_70

 

方法2:毕尽每个新项目要复制一下 ycm_extra_conf.py 来改,也挺麻烦的,重新思考了一下,应该有更简单的方法,注入path。

思路就是让vim启动时调用shell的python,取它的path再更新到vim内置python的path中。 按这个思路只要改 .vimrc如下即可。将下面完整添加到.vimrc, 以后只要进入项目目录,打开vim就能正常加载site-path ,也就实现了三方库的自动补全了。(2020-05-31 04:00)


python3 << EOF
#将当前终端的python的site-package目录加载到vim的python sys_path里
import sys
import subprocess
sitepath=subprocess.check_output("python -c 'import sys ; print(sys.path[-1])'",shell=True)
sitepath = str(sitepath,encoding='utf-8').rstrip('\n')
sys.path.append(sitepath)
EOF

 

方法1 .进入 项目 目录 (用了pyenv 会自动切换python版本和虚环境) ,用 pip show pip  显示  site-packages  路径。

xulongdeAir:testdir xulong$ pip show pip
Name: pip
Version: 19.2.3
Summary: The PyPA recommended tool for installing Python packages.
Home-page: https://pip.pypa.io/
Author: The pip developers
Author-email: pypa-dev@groups.google.com
License: MIT
Location: /Users/xulong/.pyenv/versions/3.8.2/envs/test2/lib/python3.8/site-packages
Requires: 
Required-by: 
xulongdeAir:testdir xulong$ 

复制 YCM 的 .ycm_extra_conf.py  文件,并修改,加入 新的 site-pakages  路径

#从YCM复制到项目目录
xulongdeAir:testdir xulong$ cp ~/.vim/bundle/YouCompleteMe/.ycm_extra_conf.py   .

#修改 加入 项目 site-packages 路径
xulongdeAir:testdir xulong$ vim .ycm_extra_conf.py 

  
    #加入路径
    sys_path.insert(1, '/Users/xulong/.pyenv/versions/3.8.2/envs/test2/lib/python3.8/site-packages')
  #在此前
    return sys_path

安装一个三方库  pip install xlrd 测试一下补全

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZhbmdrYWlsb3Zl,size_16,color_FFFFFF,t_70

 

修改   .vimrc           vim ~/.vimrc     打开vim时不显存加载.ycm_extra_conf.py提示

 92 " 自动补全配置
 93 let g:ycm_confirm_extra_conf=0 "关闭加载.ycm_extra_conf.py提示

 94 "set completeopt=longest,menu "让Vim的补全菜单行为与一般IDE一致(参考VimTip1228)
 95 autocmd InsertLeave * if pumvisible() == 0|pclose|endif "离开插入模式后自动关闭预览窗口
 96 inoremap <expr> <CR> pumvisible() ? "\<C-y>" : "\<CR>" "回车即选中当前项


完成,后续在此环境下加装模块都能补全了。。。。。。

python 开发环境相关文章:

python 版本和虚拟环境搭建: pyenv 的安装和使用 记录一下避免自己下次用时忘了

cython 编译 与 pyinstaller 打包

原创 win7+Python3.7+Cython +pyinstaller 打包方法 

原创 pyinstaller 打包 pillow模块 出错问题

补充错误参考:

[100%] Built target ycm_core

CMake Error: The source directory "/Users/xulong/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/cregex" does not appear to contain CMakeLists.txt.

可能是下载不完整,删掉重下,操作如下:

xulongdeAir:YouCompleteMe xulong$ rm -rf /Users/xulong/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/cregex

xulongdeAir:YouCompleteMe xulong$ git submodule update --init --recursive

Submodule path 'third_party/ycmd/third_party/cregex': checked out 'cc538bb6d0fcf0a6411537a5522d13cc9b86789d'

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wxgnolux

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值