我试图为不同的项目运行倍数jediepcserver.py for multiples virtualenvs。我的想法是在我使用Emacs的每个项目中都有适当的自动完成功能。
例如,我目前正在处理两个项目,一个使用Django 1.5,另一个使用Django 1.7,因此每个项目的自动完成应该是不同的。
这是我的配置文件:
(setq python-environment-directory "~/.virtualenvs")
(autoload 'jedi:setup "jedi" nil t)
(add-hook 'python-mode-hook 'jedi:setup)
(setq jedi:environment-root "jedi") ; name of the virtualenv
(setq jedi:server-command '("/home/humitos/.emacs.d/vendor/emacs-jedi/jediepcserver.py"))
(setq jedi:server-args
'("--virtual-env" "~/.virtualenvs/jedi"
"--log" "/tmp/jediepcserver.log"
"--log-level" "DEBUG"))
(setq jedi:complete-on-dot t)
(setq jedi:get-in-function-call-delay 500)
我尝试在项目中使用.dir-locals.el
,但我无法使其发挥作用。
(setq jedi:server-args
'("--virtual-env" "~/.virtualenvs/my-venv-project"
"--log" "/tmp/jediepcserver.log"
"--log-level" "DEBUG"))
我认为这应该是可能的,但我确定我在配置中遗漏了一些东西。那是什么?
提前致谢。
答案 0 :(得分:1)
如果您想使用特定版本的Python,请正确设置jedi:environment-virtualenv变量并重新安装jediepcserver.py。
它还说如果您设置jedi:environment-root
,那么您必须配置jedi:environment-virtualenv
我的.dir-locals.el看起来像这样
((python-mode . ((python-shell-virtualenv-root . "/home/ale/.virtualenvs/env/")
(jedi:environment-root . "/home/ale/.virtualenvs/env/")
(jedi:environment-virtualenv . ("virtualenv" "--python" "/usr/bin/python3.4"))
)))
我重新安装了jediserver,它似乎有效!
请原谅我失踪的())())()()(((