问题标签 [python.el]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
95 浏览

python - Emacs Python Mode Not Showing Ending Block

In Emacs 24.2, in python-mode when hitting tab to indent, it prints out at the bottom which block this level closes.

In Emacs 24.3 (which I believe updates python-mode to use python.el), this does not happen anymore. It usually prints something like: Closes: class Hi():. Is this not supported in the new python.el in Emacs 24.3? Is there anyway I can get it working again?

I tried searching for this but I cannot find any discussion or anything about it.

0 投票
2 回答
2117 浏览

python - 在 Emacs 中设置 Python 项目根目录?

emacs-for-python(基于python.el)提供了很好的能力来启动 Python 进程并直接从 Emacs 那里发送缓冲区(通常你用C-c C-c)。但是,这种方式会为每个缓冲区创建新进程,并将 Python 的工作目录设置为相应文件的目录。

相反,我希望将工作目录设置为项目根目录的单个 Python 进程。或者甚至可能是几个进程,但从根目录开始,而不是模块的目录。


为什么我需要它?都是关于进口的。想象一下以下项目结构:

如果我在 file 上启动 Python 进程mod1.py,Emacs 会自动将工作目录设置为,myproject/package1这样我就只能从同一个包中导入模块。没有从其他包导入。没有绝对进口。疼痛。

目前我使用一个技巧sys.path,比如:

在每个模块的开头。但这真的,真的,真的很丑陋和不方便。

那么有没有人有任何提示或技巧来为 Emacs 中的劣质进程设置 Python 的项目根目录?

0 投票
2 回答
200 浏览

python - Emacs:在派生模式下更改 python.el 缩进

我正在尝试从 python.el (当前的官方 gnu 模式)为 Boo 派生一个新的 emacs 模式,但我在更改缩进时遇到了麻烦。有人对如何最好地处理这个问题有任何建议吗?我不需要彻底改变任何东西,只需添加一些新的块形式和东西。

例如,因为这是 Boo,try/except 语法使用“ensure”而不是“finally”。我可以通过更改 python-rx-constituents 的 block-start def 在 python.el 中轻松更改这一点。但是,我似乎无法在派生模式下覆盖它,因为 python-rx-constituents 正在被一个宏 python-rx 使用,我猜一旦这两个东西在 python.el 加载时被定义(因为它必须,因为我是从它派生的),我不能再在加载后或在钩子中覆盖它?因为我确实在 python.el 加载后的内存和钩子中以及在加载后的语句中更改了它,但它们都不起作用。虽然直接改变 python.el 工作正常。

以下是来自 python.el 的代码:

我想更改 python-rx-constituents 以便 block-start 包含“确保”而不是最终。

0 投票
1 回答
339 浏览

emacs - aquamacs 中的 Eval 区域 ipython 解释器

我正在尝试使 Aquamacs 3.0a GNU Emacs 24.3.50.2 与 iPython 1.2.0 作为解释器一起工作。我能够使用 python.el 中的指令使 iPython 基本上正常工作。特别是,我将此处最佳答案中给出的设置添加到了我的 .emacs 文件中,但我仍然看到一些奇怪的行为。

注意:我的 .emacs 文件中的设置显然适用于 iPython 0.11,而不是 1.2.0,这可能是问题的根源。我不是 lisp 专家,因此将不胜感激任何帮助。

这是我能够重现的一个症状:^C^R(评估区域)命令可能会从解释器生成大量空白“In [X]:”。为了重现 aquamacs 中的问题,我创建了一个名为的文件test.py并将以下代码放入其中:

然后我输入 ^C^P(启动解释器),返回test.py缓冲区,然后输入 ^C^C(评估缓冲区)。输出是:

这一切都很好。但随后我突出显示最后一行print spam,然后键入 ^C^R。输出:

奇怪,不是吗?对于较长的文件,情况会变得更糟。即使活动区域是一行,我也经常看到 15 行或更多的空白“In [X]:”行。

0 投票
1 回答
2416 浏览

emacs - 如何为emacs配置python.el以使用python3 shell?

我是emacs的新手。我安装了具有内置 python 模式(python.el)的 emacs24。我找不到这个文件,也不知道如何配置它以使用 python3 shell(它默认使用 python2.7)。谢谢

0 投票
1 回答
571 浏览

python - Emacs 24 的 python.el + ipython 无法完成模块名称

我在 OSX 上使用 Emacs 24.4.1(与 Homebrew 一起安装),内置 .python.el和 Python 3(也与 Homebrew 一起安装),以及 IPython 2.3.0。我有这个.emacs

当我调用 时,一切正常M-x run-python,除了一件事:<tab>模块名称的 -completion 在 REPL 中不起作用(它在*Messages*缓冲区中显示“不匹配”)。我很确定它可以与我最近升级的 Emacs 24.3 一起使用,但我不能 100% 确定。任何人都知道可能导致这种情况的原因,或者我如何尝试调试它?

0 投票
2 回答
265 浏览

emacs - 在为 python (python.el) 配置 .emacs 文件时寻求帮助,

我的 emacs 版本是 24.5,使用内置 python。我.emacs为此写了以下几行:

问题是没有命令(当我试图运行时test.py)正在工作。我尝试了几个名为的命令

他们都回来了

我做错了什么?我应该做些什么?理想的配置应该是什么(.emacs)?

更多信息:

  • Python 3.4 安装在C:/
  • Emacs 在C:/Program Files/
  • $HOMEC:/user/akk/appdata/roaming/
0 投票
2 回答
761 浏览

emacs - Emacs24 和 python 模式:文档字符串中的缩进

我有以下代码/文本:

在 Emacs23 (23.4.1) 中,我能够在最后一行(“第二个注释行”;不管这行如何缩进)按 TAB,并且它像这样正确对齐:

即,它使用上一行并以相同的方式缩进下一行。

现在在 Emacs24 (24.3.1) 中,这不再起作用,它的对齐方式如下:

即它对齐多行字符串块,但不依赖于前一行。

它只影响文档字符串;代码按我的意愿缩进。我正在使用python-mode. 我怎样才能改变它,以便按 TAB 正确对齐块?

0 投票
1 回答
1828 浏览

python - Emacs Inferior Python shell 使用每个 python-shell-send-region 命令显示发送消息

我在 OS X (El Capitan) 上使用 Python 劣质 shell,每次我向 Python 进程发送一段代码(使用C-c C-r绑定到python-shell-send-region)时,我都会在 Python shell 中收到如下消息:

我不希望每次调用命令时都显示此消息。Linux 上相同版本的 Emacs(连同 python.el 文件)没有这个问题。消息的模板是在python-shell-send-file函数(在python.el文件中)中定义的,这本身就令人费解,因为我看不到在调用python-shell-send-region. 对于第一次运行,我使用以下命令调用 Python 解释器(版本 2.7.10)

但它与其他 python 解释器(通过 brew 安装)的行为也相同。我正在使用 Emacs 24.5.1(再次通过 brew 安装)。我使用的唯一 python 模式特定配置.emacs与选项卡宽度有关:

任何帮助或建议表示赞赏。

编辑和可能的解决方案

(我发现这个https://github.com/jorgenschaefer/elpy/issues/1307):

如果您在安装 gnureadline 时遇到错误,请fatal error: 'stdio.h' file not found尝试xcode-select --install.

0 投票
3 回答
562 浏览

emacs - Emacs:为什么打开文件时没有正确设置主要模式?

为什么当我打开一个 .py 文件(emacs test.py)时,主模式没有自动设置为 python 模式?我的 .emacs 中处理 python 的一些部分是:

左侧窗口应显示 ipython shell,右侧窗口应显示打开的文件 test.py。一切正常,但 test.py 处于基本模式,实际上暂存缓冲区设置为 python 模式。

编辑

好吧,问题只是我的 eval 函数处理窗口和缓冲区的方式,因此这段代码可以正确处理主要模式:

左侧窗口显示 foo.py(python 模式),右侧窗口显示暂存缓冲区(文本模式)。还有消息缓冲区和 python shell 缓冲区(inferior-python-mode)。现在只需在左侧窗口打开inferior-python-mode,在右侧窗口打开foo.py。