vim配置python3开发环境
1.1环境
OS:CentOS Linux release 7.6.1810 (Core)
python版本:Python 3.9.6
需求:配置vim使能支持python程序开发的类似IDE环境,实现代码不全、语法高亮等功能。
1.2检查环境
1.检查vim版本,如果没有“+python3”关键字,则需要升级vim
# 可见vim版本为7.4
[root@drp-monitor-20210426165633-mojh ~]# vim --version
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Dec 15 2020 16:44:08)
Included patches: 1-207, 209-629
Modified by <bugzilla@redhat.com>
Compiled by <bugzilla@redhat.com>
……
+cryptv +linebreak +python/dyn +viminfo
+cscope +lispindent -python3 +vreplace
……[root@drp-monitor-20210426165633-mojh ~]# rpm -qa | grep vim
vim-filesystem-7.4.160-5.el7.x86_64
vim-minimal-7.4.160-5.el7.x86_64
vim-enhanced-7.4.629-8.el7_9.x86_64
vim-common-7.4.629-8.el7_9.x86_64
1.3升级vim版本
cd /home/service/packages/vim
mkdir vim8.2
cd vim8.2
git clone git://github.com/vim/vim.git
cd vim/src
#make clean仅仅是清除之前编译的可执行文件及配置文件
make clean
./configure --prefix=/usr/local/vim/ --with-features=huge --enable-python3interp --enable-luainterp --enable-perlinterp --enable-multibyte --enable-cscope --with-python-config-dir=/usr/local/lib/python3.9/
make
# make distclean要清除所有生成的文件
make distclean #如果make出错时执行,调整后再重新make。
make install#删除老vim版本,如下是RPM安装的删除方式。如果是编译安装的直接删除安装目录即可。如果是yum安装的,则可以使用yum remove来删除老版本
# rpm -e vim-enhanced-2:7.4.629-8.el7_9.x86_64
# rpm -e vim-common-2:7.4.629-8.el7_9.x86_64
# rpm -e vim-filesystem-7.4.160-5.el7.x86_64#最后在创建一个软连接
ln -s /usr/local/vim/bin/vim /usr/bin/vim# 检查vim版本
[root@drp-monitor-20210426165633-mojh bin]# vim --version
VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Aug 24 2021 19:05:47)
Included patches: 1-3370
Compiled by root@drp-monitor-20210426165633-mojh
Huge version without GUI. Features included (+) or not (-):
……
+cmdline_hist +langmap +python/dyn +visual
+cmdline_info +libcall +python3/dyn +visualextra
……
#configure参数说明:
–with-features=huge:支持最大特性
–enable-rubyinterp:打开对 ruby 编写的插件的支持
–enable-pythoninterp:打开对 python 编写的插件的支持
–enable-python3interp:打开对 python3 编写的插件的支持
–enable-luainterp:打开对 lua 编写的插件的支持
–enable-perlinterp:打开对 perl 编写的插件的支持
–enable-multibyte:打开多字节支持,可以在 Vim 中输入中文
–enable-cscope:打开对 cscope 的支持
–with-python-config-dir=/usr/lib64/python2.7/ 指定 python 路径
–with-python-config-dir=/usr/local/lib/python3.9/ 指定 python3 路径
–prefix=/usr/local/vim:指定VIM将要安装到的路径 (自行创建)
#python3/dyn 含义如下,表示同时支持python2和python3
- No Python support (-python, -python3)
- Python 2 support only (+python or +python/dyn, -python3)
- Python 3 support only (-python, +python3 or +python3/dyn)
- Python 2 and 3 support (+python/dyn, +python3/dyn)
如何确定with-python-config-dir的值
可使用如下方法:
#如下/usr/lib64/python2.7 就是我们需要的python2路径
[root@drp-monitor-20210426165633-mojh bin]# python
Python 2.7.5 (default, Apr 2 2020, 13:16:51)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/usr/lib64/python27.zip', '/usr/lib64/python2.7', '/usr/lib64/python2.7/plat-linux2', '/usr/lib64/python2.7/lib-tk', '/usr/lib64/python2.7/lib-old', '/usr/lib64/python2.7/lib-dynload', '/usr/lib64/python2.7/site-packages', '/usr/lib64/python2.7/site-packages/gtk-2.0', '/usr/lib/python2.7/site-packages']#如下/usr/local/lib/python3.9 就是我们需要的python3路径
[root@drp-monitor-20210426165633-mojh bin]# python
Python 3.9.6 (default, Jul 21 2021, 17:15:57)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/usr/local/lib/python39.zip', '/usr/local/lib/python3.9', '/usr/local/lib/python3.9/lib-dynload', '/root/.local/lib/python3.9/site-packages', '/usr/local/lib/python3.9/site-packages']
1.4vim插件管理(使用Vundle插件管理器)
Vundle是Vim bundle的缩写,是一个Vim插件管理器。git hub地址为:https://github.com/VundleVim/Vundle.vim
1).配置vundle
# mkdir /usr/local/vim/share/vim/bundlecd /usr/local/vim/share/vim/bundle
# 下载vundle插件管理器到/usr/local/vim/share/vim/bundle/vundle.vim目录下git clone git://github.com/VundleVim/Vundle.vim.git /usr/local/vim/share/vim/bundle/vundle.vim
# 拷贝一份vimrc样本配置文件cp /usr/local/vim/share/vim/vim82/vimrc_example.vim /usr/local/vim/share/vim/vimrcvim /usr/local/vim/share/vim/vimrc
#加入如下内容:
"去除VI一致性,必须
set nocompatible
"必须
filetype off "设置Vundle的运行路径
set rtp+=/usr/local/vim/share/vim/bundle/vundle.vim
"设置插件的安装路径,vundle插件起始标志,
"#begin …… #end 之间就是要安装的插件,插件文件放在rtp+对应路径下面
call vundle#begin('/usr/local/vim/share/vim/bundle')"让vundle管理插件版本
Plugin 'VundleVim/Vundle.vim'"你的所有插件需要在下面这行之前
call vundle#end()
"加载vim自带和插件相应的语法和文件类型相关脚本
filetype plugin indent on
2).vundle安装插件
# 1)vim命令进入vim程序
# vim# 2)命令模式下执行:PluginList列出你所有的插件
:PluginList# 3) 命令模式下执行:PluginInstall安装插件
:PluginInstall
3).vundle删除插件(可选)
#删除插件只需要在vimrc配置文件中注释掉对应的插件,在vim中用:PluginClean命令就会清理掉注释掉的插件注意:
删除插件从磁盘删除对应的插件相关文件
1.5vim版python IDE推荐插件
1) nerdtree插件安装
功能:erdtree是一个在vim中新窗口显示的文件浏览器
cd /usr/local/vim/share/vim/bundle
git clone git://github.com/preservim/nerdtree.git
vim ../vimrc
#编辑vimrc配置文件,在#begin……#end之间,添加如下内容:"添加nerdtree插件
Plugin 'preservim/nerdtree'
"设置按F2启动NerdTree
map <F2> :NERDTreeToggle<CR>
"隐藏目录树中的.pyc文件
let NERDTreeIgnore=['\.pyc$', '\~$'] "ignore files in NERDTree在PluginList,PluginInstall来安装该插件
2) YouCompleteMe插件
功能
代码自动补全插件,支持多种语言(如java、python、C等),github详细介绍
安装
cd /usr/local/vim/share/vim/bundle
git clone git://github.com/ycm-core/YouCompleteMe.git
cd /usr/local/vim/share/vim/bundle/YouCompleteMe
git submodule update --init --recursive #可能报错见“报错1”
python install.py --clang-completer #可能报错见“报错2”
遇到的问题
#Q1: 报错1--git submodule报错
[root@drp-monitor-20210426165633-mojh YouCompleteMe]# git submodule update --init --recursive
Cloning into 'third_party/bottle'...
fatal: unable to access 'https://github.com/defnull/bottle/': Failed connect to 127.0.0.1:1080; Connection refused
Clone of 'https://github.com/defnull/bottle' into submodule path 'third_party/bottle' failed
Failed to recurse into submodule path 'third_party/ycmd'
#A1: 需要修改访问github的协议
1) 需要将报错的模块对应的https:// 协议改成 git://
cd /usr/local/vim/share/vim/bundle/YouCompleteMe
如上报错中提示‘https://github.com/defnull/bottle’ 找不到,
grep -ri "https://github.com/defnull/bottle" 查看哪些文件配置了这个,如下:
sed -i s#https://#git://# third_party/ycmd/.gitmodules
sed -i s#https://#git://# .git/modules/third_party/ycmd/config
注意:非github地址,可以可能需要保持使用https://协议#补充:
查看git配置:
git config --global -l
配置代理:
git config --global http.proxy http://127.0.0.1:1080
git config --global https.proxy http://127.0.0.1:1080
取消代理:
git config --global --unset http.proxy
git config --global --unset https.proxy#Q2:报错2--正式安装YouCompleteMe插件时报错
[root@drp-monitor-20210426165633-mojh YouCompleteMe]# python install.py --clang-completer
File /usr/local/vim/share/vim/bundle/YouCompleteMe/third_party/ycmd/build.py does not exist; you probably forgot to run:git submodule update --init --recursive#A2:
修改.gitmodules 将“https://" 改成 ”git://" # 因为可能https协议可能无法访问。
git submodule sync
git submodule update --init --recursive#Q3:报错3--缺少动态链接库
#A3:下载python源码包,重新编译,并复制到指定目录
1)下载(www.python.org)
2)./configure --prefix=/usr/local --enable-shared CFLAGS=-fPIC
3)make
4)makeinstall
5)复制到指定目录
cp libpython3.6m.so.1.0 /usr/local/lib64/
cp libpython3.6m.so.1.0 /usr/lib/
cp libpython3.6m.so.1.0 /usr/lib64/#Q4:报错4:缺少devtoolset-8
-- NOTE: You appear to be on CentOS. In order to use this application, you require a more modern compiler than the default compiler on this platform. Please install the devtoolset-8 or greater. For example, see this link: https://www.softwarecollections.org/en/scls/rhscl/devtoolset-8/
CMake Error at CMakeLists.txt:232 (message):Your C++ compiler does NOT fully support C++17.
-- Configuring incomplete, errors occurred!
See also "/tmp/ycm_build_s84e_jbz/CMakeFiles/CMakeOutput.log".
ERROR: the build failed.
#A4:参考如下:
1). Install a package with repository for your system:
# On CentOS, install package centos-release-scl available in CentOS repository:
$ sudo yum install centos-release-scl
# On RHEL, enable RHSCL repository for you system:
$ sudo yum-config-manager --enable rhel-server-rhscl-7-rpms
2). Install the collection:
$ sudo yum install devtoolset-8
3). Start using software collections:
$ scl enable devtoolset-8 bash#Q5:报错5:
[root@drp-monitor-20210426165633-mojh vim]# vim
YouCompleteMe unavailable: unable to load Python.
Press ENTER or type command to continue
#A5:原因:vim8不能同时python和python3,需要关闭python2的配置开关--enable-pythoninterp
#重新编译vim
cd vim源码包
make uninstall
./configure --prefix=/usr/local/vim/ --with-features=huge --enable-python3interp --enable-luainterp --enable-perlinterp --enable-multibyte --enable-cscope --with-python-config-dir=/usr/local/lib/python3.9
make
make install
ycmd相关命令
#查看日志
:YcmToggleLogs ycmd_49353_stderr_hfxb354_.log#重启ycmd server
:YcmRestartServer#ycmd命令自动补全
:Ycm(按tab键选择,按enter确定)
vim配置python3开发环境相关推荐
- 【Python】Mac下Sublime Text3配置Python3开发环境
我采用的第二种方案 1 [Python]Mac下Sublime Text3配置Python3开发环境 https://blog.csdn.net/qq_33304418/article/details ...
- Vim配置Golang开发环境
Vim配置Golang开发环境 文章目录 Vim配置Golang开发环境 准备: 开始: 参考资料 准备: Download Ubuntu Desktop | Download | UbuntuUbu ...
- vim配置python开发环境_Win10系统下安装编辑器之神(The God of Editor)Vim并且构建Python生态开发环境(2020年最新攻略)...
众神殿内,依次坐着Editplus.Atom.Sublime.Vscode.JetBrains家族.Comodo等等一众编辑器界的大佬们,偌大的殿堂内几无立锥之地,然而在殿内的金漆雕龙宝座上,端坐着一 ...
- vim配置python开发环境_VIM插件管理及python开发环境配置
这是在公司做的一个分享,目的是帮助新手快速的配置好python开发环境.在操作之前,建议先把你自己的vim配置文件(vimrc)和.vim文件夹先剪切到一个备份文件中. 上ppt(囧,blog地址写错 ...
- vim配置python开发环境_GitHub - TTWShell/legolas-vim: Vim配置,为python、go开发者打造的IDE。...
legolas-vim 个人vim配置.支持python.go等自动提示,支持python.go的函数跳转(python支持虚拟环境). 最终效果图(函数列表的feature已移除,因为大项目会导致性 ...
- linux中python解释器的配置_CentOS7配置Python3开发环境
许多小伙伴在刚接触Unix/Linux操作系统时会非常的不适应,毕竟突然的命令行操作会使习惯于Windows桌面操作的人特别难受,尤其是像笔者这样的手残党,是需要一段时间来适应的. 记得刚刚接触到Un ...
- Vim配置IDE开发环境
我的vim IDE界面: 1.安装Vim和Vim基本插件 首先安装好Vim和Vim的基本插件.这些使用apt-get安装即可: lingd@ubuntu:~/arm$sudo apt-get inst ...
- vim-python j教程_实践Vim配置python开发环境
这段时间一直在用Python自带的IDLE编辑器.可是这IDLE的代码缩进真的让人很受伤.当你用到if:elif:的时候.后一行的elif:不会自动对齐.这让我经常出现在调试的时候才发现代码缩进出现问 ...
- sublime配置python3环境_【env】Sublime配置Python3开发环境
新建编译环境 在sublime菜单栏中Tools => Build System => New Build System...,输入一下内容并保存为 Python3.sublime-bui ...
最新文章
- chart.Correlation绘制相关性热图
- ASP.NET Core 入门教程 2、使用ASP.NET Core MVC框架构建Web应用
- openssh 7.4 java使用_openssh/openssl升级到7.4和1.0.2j 源码方式
- 12、Java Swing计算器界面的实现
- uniapp H5页面嵌入微信小程序 ios 下 video组件 播放视频 设置 border-radius overflow:hidden 不生效
- 交替领先的赛跑(洛谷P1568题题解,Java语言描述)
- 视觉SLAM十四讲学习笔记-第四讲-Sophus实践、相似变换群与李代数
- 录音机 在launcher中显示_「 腾讯 微信事业部 社招二面」——一个APP从启动到主页面显示经历了哪些过程?...
- Go设计模式之Factory
- mysql 记录更新时间_MySQL表内更新时,自动记录时间
- POJ 3984 迷宫问题 (Dijkstra)
- python shell清屏指令_Python Shell 怎样清屏?
- DXperience 7.1.1
- c语言求信源的信息熵,[转载]关于信息熵及信源熵率
- TFIDF理解和应用
- 机器人领域的SCI期刊和会议
- 常见的分布期望及其方差
- jQuery过年烟火炫酷背景插件音效
- 阿里api网关接口创建、发布、授权、调试
- 上线7天融资1.5亿,还有50多家VC在排队,子弹短信为何受追捧?