如何使用虚拟环境制作啤酒亮点

How do I make ale highlight using a virtual environment

我刚开始将 Vim 配置为 IDE,我启动的第一个文件恰好使用了虚拟环境。

在我的 .vimrc 中,我添加了 ale as my lint engine, and coc 作为我的自动完成(智能感知)引擎。所以我进去了,发现有错误。我退出vim,然后source我的虚拟环境,再次进入,还是报错。但是,出于某种原因,它们都在进口。

我试过:

我将 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