我正在尝试为不同项目的多个 virtualenv 运行多个 jediepcserver.py 。我的想法是让我在 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"))
我认为这应该是可能的,但我确信我在配置中遗漏了一些东西。那是什么?
提前致谢。
来自文档 http://tkf.github.io/emacs-jedi/latest/#jedi:server-command:
如果您想使用特定版本的 Python,请适当设置 jedi:environment-virtualenv 变量并重新安装 jediepcserver.py。
它还说你必须配置jedi:environment-root
如果你设置jedi:environment-virtualenv
so...
我的 .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,它似乎工作了!
原谅我的失踪())())()()(((
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)