如何使用虚拟环境制作啤酒亮点
How do I make ale highlight using a virtual environment
我刚开始将 Vim 配置为 IDE,我启动的第一个文件恰好使用了虚拟环境。
在我的 .vimrc 中,我添加了 ale as my lint engine, and coc 作为我的自动完成(智能感知)引擎。所以我进去了,发现有错误。我退出vim,然后source我的虚拟环境,再次进入,还是报错。但是,出于某种原因,它们都在进口。
我试过:
- 在进入 vim
之前采购我的 venv
- 将
let g:ale_virtualenv_dir_names = ['env']
放入我的 .vimrc
- 使用 vim-virtualenv 插件
我将 ale 的 linters 和 fixers 设置如下
" ALE vars
let g:ale_disable_lsp = 1
let g:ale_linters = {
\ 'python': ['flake8'],
\ 'javascript': ['eslint'],
\}
let g:ale_fixers = {
\ 'python': ['black'],
\}
let g:ale_fix_on_save = 1
let g:ale_sign_warning = '-!'
let g:ale_virtualenv_dir_names = ['env']
但它仍然会抛出错误
如何使用我的虚拟环境让它发出警告?
我好像修好了。 编辑:我没有修复它
在我的 .vimrc 文件中,我只需要缩进这个代码块。
let g:ale_fixers = {
\ 'python': ['black'],
\}
它一定让 vim 和 ale 混淆并抛出错误,特别是因为我把它放在我的 g:virtualenv_dir_names
变量之前。
更新
这不是导致问题的原因
出于某种原因,这完全与我的虚拟环境有关。如果有人能给我解释一下,我将不胜感激。
我需要 rm -dr
我以前的虚拟环境,然后重新制作并重新安装它。
希望这对你们中的一些人有所帮助!
我假设您正在使用 Neovim
(或者此解决方案也适用于 Vim
),但 YMMV。
==> 运行 neovim 中的命令 :checkhealth provider
。您要查找关于 python 3:
的部分
## Python 3 provider (optional)
- INFO: Using: g:python3_host_prog = "/home/albaraa/Documents/venv_global/bin/python3"
- INFO: Executable: /home/albaraa/Documents/venv_global/bin/python3
- INFO: Python version: 3.8.5
- INFO: pynvim version: 0.4.2
- OK: Latest pynvim is installed.
============================================= ===============================
如果没有说OK
,只需按照给出的提示操作即可:
- 如果它找不到你的 python 版本,那么在你的 init.vim 文件中放置你的 virtualenv 的位置:
let g:python3_host_prog = '/home/albaraa/Documents/venv_global/bin/python3'
- 如果它找到了但您仍然收到错误,请按照提示操作。您将需要 运行 在您的虚拟环境中执行此命令:
pip install neovim pynvim
============================================= ===============================
如果它显示 OK
但它仍然不工作:
- 确保您在 python 虚拟环境中 运行ning neovim。我有一个像这样的 Neovim 设置的别名,这样我就可以输入
nvimp
并让它自动执行:
alias nvimp="source ~/Documents/venv_global/bin/activate && nvim"
- 检查您是否可以访问 neovim 中的 python 虚拟环境。我认为一些旧版本对此有问题:
" This should show your virtual environment
:which python
" This should show your virtual environment in the path
:echo $PATH
" This should show your virtual environment is in the path of the neovim command shell (has to be the same as above)
:!echo $PATH
我刚开始将 Vim 配置为 IDE,我启动的第一个文件恰好使用了虚拟环境。
在我的 .vimrc 中,我添加了 ale as my lint engine, and coc 作为我的自动完成(智能感知)引擎。所以我进去了,发现有错误。我退出vim,然后source我的虚拟环境,再次进入,还是报错。但是,出于某种原因,它们都在进口。
我试过:
- 在进入 vim 之前采购我的 venv
- 将
let g:ale_virtualenv_dir_names = ['env']
放入我的 .vimrc - 使用 vim-virtualenv 插件
我将 ale 的 linters 和 fixers 设置如下
" ALE vars
let g:ale_disable_lsp = 1
let g:ale_linters = {
\ 'python': ['flake8'],
\ 'javascript': ['eslint'],
\}
let g:ale_fixers = {
\ 'python': ['black'],
\}
let g:ale_fix_on_save = 1
let g:ale_sign_warning = '-!'
let g:ale_virtualenv_dir_names = ['env']
但它仍然会抛出错误
如何使用我的虚拟环境让它发出警告?
我好像修好了。 编辑:我没有修复它
在我的 .vimrc 文件中,我只需要缩进这个代码块。
let g:ale_fixers = {
\ 'python': ['black'],
\}
它一定让 vim 和 ale 混淆并抛出错误,特别是因为我把它放在我的 g:virtualenv_dir_names
变量之前。
更新
这不是导致问题的原因
出于某种原因,这完全与我的虚拟环境有关。如果有人能给我解释一下,我将不胜感激。
我需要 rm -dr
我以前的虚拟环境,然后重新制作并重新安装它。
希望这对你们中的一些人有所帮助!
我假设您正在使用 Neovim
(或者此解决方案也适用于 Vim
),但 YMMV。
==> 运行 neovim 中的命令 :checkhealth provider
。您要查找关于 python 3:
## Python 3 provider (optional)
- INFO: Using: g:python3_host_prog = "/home/albaraa/Documents/venv_global/bin/python3"
- INFO: Executable: /home/albaraa/Documents/venv_global/bin/python3
- INFO: Python version: 3.8.5
- INFO: pynvim version: 0.4.2
- OK: Latest pynvim is installed.
============================================= ===============================
如果没有说OK
,只需按照给出的提示操作即可:
- 如果它找不到你的 python 版本,那么在你的 init.vim 文件中放置你的 virtualenv 的位置:
let g:python3_host_prog = '/home/albaraa/Documents/venv_global/bin/python3'
- 如果它找到了但您仍然收到错误,请按照提示操作。您将需要 运行 在您的虚拟环境中执行此命令:
pip install neovim pynvim
============================================= ===============================
如果它显示 OK
但它仍然不工作:
- 确保您在 python 虚拟环境中 运行ning neovim。我有一个像这样的 Neovim 设置的别名,这样我就可以输入
nvimp
并让它自动执行:
alias nvimp="source ~/Documents/venv_global/bin/activate && nvim"
- 检查您是否可以访问 neovim 中的 python 虚拟环境。我认为一些旧版本对此有问题:
" This should show your virtual environment
:which python
" This should show your virtual environment in the path
:echo $PATH
" This should show your virtual environment is in the path of the neovim command shell (has to be the same as above)
:!echo $PATH