Python中如何配置Vim以支持Python编译?
我想问下 vim 编译支持 python 和编译不支持 python,有什么区别吗?
还有 vim 好像不能同时支持 python2 和 python3,那这两者之间有什么区别吗?是会影响关键字检查之类的吗?
如果没法同时支持,2、3 都写来的人该怎么办?
Python中如何配置Vim以支持Python编译?
支持的话大概就是 Vimscript 里可以嵌 python 了,挑插件的话筛一下不依赖 python 的
在Vim里配置Python开发环境,主要靠插件和配置。我常用的方案是:
- 语法高亮和缩进:Vim自带Python支持,但可以增强:
syntax on
filetype plugin indent on
set tabstop=4
set shiftwidth=4
set expandtab
- 关键插件(用vim-plug管理):
" 自动补全
Plug 'davidhalter/jedi-vim'
" 语法检查
Plug 'dense-analysis/ale'
" 代码格式化
Plug 'psf/black', { 'branch': 'stable' }
- 运行配置:在.vimrc里加个快捷键:
autocmd FileType python nnoremap <buffer> <F5> :w<CR>:!python %<CR>
按F5就能运行当前脚本。
- 虚拟环境支持:如果需要指定虚拟环境:
let g:python3_host_prog = '/path/to/venv/bin/python'
装完插件记得跑:PlugInstall。这套配置能让你在Vim里获得接近IDE的体验,但比IDE轻量多了。
总结:装对插件,配好快捷键。
楼主关注的是写代码的时候的自动完成等等吧?这个要交给第三方插件。Vim 的 Python Flag 是决定 Vim 能执行什么版本的脚本的
别想同时支持 python2 和 python3 了,对代码和其他工具( flake8 等)要求太高。
也许可以根据「正在编辑」的文件动态设置要使用的 python 版本。
根据当前正在编辑的文件是 python2 还是 python3 (在 vim script 判断? project 判断?),然后使用对应的 python 版:
def is_python3(src):
return project_name in [‘proj1’, ‘proj2’] or first_line.contains(‘python3’)
if is_python3(src)
alias python = python3
else
alias python = python2
你说的支持 python 是指的 Vim 插件要求的 python 版本,并不是你写代码的 python 版本
所以直接选 3 就好了
原来如此,也就是说只要我用的 vim 插件不要求使用 python3,那我编译时候就用 python2 就行。
跟我写什么版本的代码没关系。
我切成 3,vim 打开直接报错了

