vim 配置python3环境_vim怎么运行python

vim 配置python3环境_vim怎么运行python1.1环境OS:CentOSLinuxrelease7.6.1810(Core)python版本:Python3.9.6需求:配置vim使能支持python程序开发的类似IDE环境,实现代码不全、语法高亮等功能。1.2检查环境1.检查vim版本,如果没有“+python3”关键字,则需要升级vim#可见vim版本为7.4[root@drp-monitor-20210426165633-mojh~]#vim–versionVIM-ViIMproved7.4(201

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

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

  1. No Python support (-python, -python3)
  2. Python 2 support only (+python or +python/dyn, -python3)
  3. Python 3 support only (-python, +python3 or +python3/dyn)
  4. 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/bundle
  cd /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/vimrc

vim /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确定)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/187654.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 背英语句子,来巧记单词[通俗易懂]

    背英语句子,来巧记单词[通俗易懂]WithmyownearsIclearlyheardtheheartbeatofthenuclearbomb.我亲耳清楚地听到原子弹的心脏的跳动。Nextyearthebeardedbearwillbearadearbabyintherear.明年,长胡子的熊将在后方产一头可爱的小崽.EarlyIsearchedthroughtheearthforearthwaresoastoresearchinearthqua.

  • Python的命名规范「建议收藏」

    Python的命名规范「建议收藏」Python中常用的一些命名规范,遵守代码命名规范,使代码看起更优雅。

  • HDU3572_Task Schedule(网络流最大流)[通俗易懂]

    HDU3572_Task Schedule(网络流最大流)

  • idea202112激活码下载[最新免费获取]

    (idea202112激活码下载)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.htmlS32PGH0SQB-eyJsaWNlbnNlSWQi…

  • 2017年Android SDK下载安装及配置教程

    2017年Android SDK下载安装及配置教程首先声明:Unity版本5.6.3f1    最近试着在Unity中利用高通做AR开发时,发布项目文件需要发布到Android平台,遇到一些问题,看了网上的一些资料,踩了一些坑,现在总结出来,希望有相同的开发者遇到时可以规避。    若有任何问题可留言评论,我看到会第一时间解答。Android开发环境搭建分为以下四步:第一步、安装JDK;第

  • anyMatch_any后面加什么

    anyMatch_any后面加什么importcom.it.vo.Student;importjava.util.ArrayList;importjava.util.List;/***anyMatch(Predicatep)传入一个断言型函数,对流中所有的元素进行判断,*只要有一个满足条件就返回true,都不满足返回false。*/publicclassTest{publicstaticvoidmain(String[]args){Studentstu1.

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号