我正在使用 fgallina 的 python.el python.el github功能列表很长,但我不知道如何使用它们。
编辑:发现此模式有效,但没有自动打开解释器,信息已发送到那里。如何发送/加载我当前的 python 缓冲区以进行评估?我正在尝试使用 C-c C-c 但我没有得到任何输出。
Python shell 集成和 shell 补全?我是否需要在标准加载路径旁边添加一些内容并为此要求语句?
Imenu 支持也没有向我显示。 编辑我尝试将此添加到我的 emacs,但没有成功。
add-hook 'python-mode-hook 'imenu-add-menubar-index)
我在 ubuntu 上使用 emacs 23
最佳答案
对于您的第一个问题:通常您可以使用 C-c C-l 加载缓冲区/文件。 (刚刚对 python.el 进行了测试,它也适用于这个)这会将文件发送到下级 python 进程——因此您应该打开 *Python* 缓冲区以查看结果。 *Python* 缓冲区也是您的常规 python 解释器/shell/REPL。 C-M-x 绑定(bind)到 python-send-defun,它将方法/函数定义发送到解释过程。对于其他绑定(bind),只需点击 M-x describe-bindings,然后在打开的 *Help* 缓冲区窗口中查找“python-”(在“Major Mode Bindings”下)。
如果你想了解更多补全,在python.el开头还有一些文档:
引用:
Shell 完成:点击 tab 将尝试完成当前
单词。 Shell 完成的实现方式是,如果您
将 python-shell-interpreter
更改为任何其他(例如
IPython)应该很容易集成另一种计算方式
完成。您只需要指定您的自定义
python-shell-completion-setup-code
和
python-shell-completion-string-code
.
引用:
符号补全:可以在点处补全符号。它用
shell 在后台完成,所以你应该运行
python-shell-send-buffer
时时获取更好的结果。
骨架:提供了6个骨架用于简单的类插入,
def、for、if、try 和 while。这些骨架与
达布雷夫。如果您激活了 dabbrev-mode
并且
python-skeleton-autoinsert
设置为 t,那么无论何时键入
任何已定义并命中 SPC 的名称,它们将是
自动展开。
imenu 条目在没有添加钩子(Hook)的情况下为我显示,只是在配置文件中(require 'python)
。
关于python.el shell 和执行缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6867834/