我使用 python-mode.el 而不是 python.el 进行 python 工作,我所有的自定义都依赖于它。但是,由于某种原因,Emacs23 附带的 python.el 会定期加载,突然间我的所有配置都消失了。
我怎样才能防止这种情况?现在,我的 .emacs 中有此代码:
(if featurep 'python)
(unload-feature 'python))
Run Code Online (Sandbox Code Playgroud)
这似乎减少了这种情况的发生,但有时我会在同一个会话中打开一个 python 文件!-- 它会得到 python.el python-mode 而不是 python-mode.el 版本。然而,下一个缓冲区仍然具有旧模式。
这让我快疯了!
这完全取决于您如何设置 .emacs。
默认情况下,该函数'python-mode与包相关联python.el。您需要使用以下内容进行更改:
(autoload 'python-mode "python-mode" "Python Mode." t)
Run Code Online (Sandbox Code Playgroud)
假设该python-mode软件包已经在您的load-path. 在任何导致python.el加载之前,您还需要确保上述内容在您的 .emacs 中发生。
可能不需要另外两行,但不要伤害:
(add-to-list 'auto-mode-alist '("\\.py\\'" . python-mode))
(add-to-list 'interpreter-mode-alist '("python" . python-mode))
Run Code Online (Sandbox Code Playgroud)
如果这不起作用,那么我们将需要更多信息。
另一种选择是覆盖从 自动加载的函数,从python.elEmacs 23.1开始,这些函数如下:
(defun run-python (&rest args) nil)
(defun python-mode (&rest args) nil)
(defun jython-mode (&rest args) nil)
(defun python-shell (&rest args) nil)
Run Code Online (Sandbox Code Playgroud)
如果您在 .emacs 中定义它们,那么 Emacs 设置的自动加载将不起作用。您必须python-mode.el手动加载(因为python-mode不需要运行自动加载(因为您定义了该函数))。加载python-mode.el:
(load "/path/to/python-mode.el")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3209 次 |
| 最近记录: |