12

我正在使用 Ubuntu 10.10 (Maverick Meerkat)。我已经python-mode.elLaunchpad下载并放在emacs.d/plugins/.

现在我该如何安装python-mode.el

4

4 回答 4

9

试试这个

(add-to-list 'load-path "~/.emacs.d/plugins")
(require 'python-mode)
于 2012-07-06T13:40:27.660 回答
3

我发现根据编辑的文件类型自动加载适当的编辑模式更方便。有很多方法可以做到这一点,但我通常会在 autoload-alist 中添加一个条目:

(and (library-loadable-p "python-mode")
     (setq auto-mode-alist (append '(
                     ("\\.py\\'"       . python-mode)
                     )
                   auto-mode-alist)))

对于我喜欢使用的各种模式,我有一长串清单。如果未安装 python-mode(或任何其他模式),它会静默失败。如果我在没有安装模式的 ISP 服务器上运行,我将 ~/lib/elisp 添加到加载路径并将丢失的 .el 文件放在那里。

library-loadable-p 来自朋友,只是测试文件是否在加载路径中的某个位置:

(defun library-loadable-p (lib &optional nosuffix)
  "Return t if library LIB is found in load-path.
Optional NOSUFFIX means don't try appending standard .elc and .el suffixes."
  (let ((path load-path)
    elt)
    (catch 'lib-found
      (while (car path)
    (setq elt (car path))
    (and
     (if nosuffix
         (file-exists-p (concat elt "/" lib))
       (or (file-exists-p (concat elt "/" lib ".elc"))
           (file-exists-p (concat elt "/" lib ".el"))
           (file-exists-p (concat elt "/" lib))))
     (throw 'lib-found t))
    (setq path (cdr path))))))
于 2012-07-06T15:14:32.767 回答
3

我建议克隆最新的快照:

cd ~/.emacs.d/site-lisp/python-mode
bzr branch lp:python-mode

然后添加到.emacs

(add-to-list 'load-path "~/.emacs.d/site-lisp/python-mode")
(setq py-install-directory "~/.emacs.d/site-lisp/python-mode")
(require 'python-mode)

您可以稍后将其更新到最新版本:

bzr update

但不要忘记重新编译:

(byte-recompile-directory (expand-file-name "~/.emacs.d/site-lisp/python-mode") 0)
于 2012-07-07T10:24:30.860 回答
2

在 emacs 25 中,您可以使用 melpa 安装 python 模式,因此只需将其添加到您的 .emacs 文件中:

(require 'package)
(add-to-list 'package-archives
             '("melpa-stable" . "https://stable.melpa.org/packages/"))

重新加载文件,然后键入,

Alt+x list-packages

移动到你想要的包,

python-mode

然后点击“回车”,在打开的新缓冲区中移动到Install并按回车。

这会导致 python-mode 安装在~/.emacs.d/elpa

现在在一个新的缓冲区python-mode中,编写代码并键入C-u C-c C-c以评估和显示输出。

于 2017-11-25T18:33:35.170 回答