加载 Pymacs & Ropemacs 仅在打开 Python 文件时使用?
我使用 Pymacs 加载 ropemacs 和 rope ,并在我的 .emacs 文件中使用以下几行,如 此处。
(autoload 'pymacs-load "pymacs" nil t)
(pymacs-load "ropemacs" "rope-")
然而,它会显着减慢 Emacs 的启动速度,因为加载 Ropemacs 需要一段时间。
我尝试了以下行,但每次打开Python文件时都会加载Ropemacs:
(add-hook 'python-mode-hook (lambda () (pymacs-load "ropemacs" "rope-")))
Is有一种方法可以在打开Python文件时执行pymacs-load
操作,但仅如果 ropemacs 和 rope 尚未加载?
I use Pymacs to load ropemacs and rope with the following lines in my .emacs file as described here.
(autoload 'pymacs-load "pymacs" nil t)
(pymacs-load "ropemacs" "rope-")
It however slows down the start-up of Emacs significantly as it takes a while to load Ropemacs.
I tried the following line instead but that loads Ropemacs every time a Python file is opened:
(add-hook 'python-mode-hook (lambda () (pymacs-load "ropemacs" "rope-")))
Is there a way to perform the pymacs-load
operation when opening a Python file but only if ropemacs and rope aren't loaded yet?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在我的 .emacs 中,我有:
在一个单独的文件 my-python-setup.el 中,我保留:
这样,Pymacs 和 >ropemacs 将仅加载一次。当第一个 .py 文件打开时会发生这种情况。
In my .emacs I have:
And in a separate file my-python-setup.el I keep:
This way, Pymacs and ropemacs will be loaded only once. This happens when the first .py file is opened.
这就是
eval-after-load
的用途。如果您使用 python.el 而不是 python-mode.el,则需要编写“python”而不是“python-mode”。
实际上,我的 ropemacs 加载代码位于一个可以交互调用的单独函数中。这是因为有时 ropemacs 对我来说会崩溃,当它发生时,我只需调用该函数来重新加载它。
This is what
eval-after-load
is for.You'll need to write "python" instead of "python-mode" if you use python.el instead of python-mode.el.
I actually have my ropemacs loading code in a separate function that can be called interactively. This is because occasionally ropemacs crashes for me, and when it does I just call that function to reload it.
这是我的解决方案:
其中
ac-ropemacs-setup
在 自动完成 模块中定义:此解决方案假设您使用自动完成同时。
This is my solution:
where
ac-ropemacs-setup
is defined in the auto-complete module:This solution assume that you use auto-complete at the same time.