问题标签 [python-mode]

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 投票
4 回答
13058 浏览

emacs - 如何在emacs python-mode中取消注释代码块?

我刚开始在 emacs 中使用 python-mode,我注意到虽然主要模式有注释掉一个区域((py-comment-region)绑定 (C-c #))的选项,但没有选项可以取消注释已经注释的代码块。我在 python 模式下检查了所有活动的键绑定,但找不到任何相关的键。我错过了什么吗?

我确实想到了一些解决方法,例如使用(delete-rectangular)(bound to C-x r d) 删除评论。另一种方法是将 绑定(comment-or-uncomment-region)到某个键并开始使用它。

但是默认情况下python模式本身是否提供了任何选项?

0 投票
2 回答
355 浏览

python - Emacs python-mode.el 注释开始一个新行

我在 Emacs 中使用 python-mode.el 来编辑一些 Python 代码,它具有最烦人的功能,它会自动缩进注释然后开始新行。例如,如果我有这个:

然后在根缩进级别添加一个#:

它会自动缩进,插入 #,并在 # 之后插入回车。这让我疯狂。我希望我的评论保持在我放置它们的位置!有什么建议么?

我查看了该模式的 elisp 代码,但找不到任何东西,也无法在网上其他地方找到任何东西。我所能找到的只是评论不会用于未来的缩进(py-honor-comment-indentation),但与评论本身无关。也不是奇怪的回车。

0 投票
2 回答
209 浏览

python - python:显示帮助文档

我在 emacs 中使用 iPython 运行 python 模式。特别是对于 numpy 包,当我输入

或在交互式缓冲区中的任何类似内容,文档的页面和页面都打印在缓冲区中,从而难以搜索缓冲区中打印的其他材料。有没有更好的方法来解决这个问题?在 R 中,您可以通过更改非常轻松地在 Web 浏览器中显示帮助页面(文档在本地 HD 上)options(help_type="html"),并且文档的格式也很好。Python中有这样的东西吗,或者你做什么?我并不总是有互联网连接,所以我想要一个本地高清解决方案。

0 投票
1 回答
340 浏览

emacs - 在 3 窗口设置中调用 ipython 编译时,如何强制 emacs 使用底部窗口而不是底部窗口

所以我有一个 3 帧设置的 emacs 窗口设置:

两个源位于左上方和右上方窗口,而 ipython 控制台位于底部窗口。每当我从左上角的源调用 ipython 评估缓冲区命令时,控制台会重新显示在右侧窗口中,覆盖我的另一个源,后者显示在底部窗口中。简而言之,控制台和右上角的源有效地交换了窗口。

这里提出了一个类似但不完全正确的问题: 如何在 Emacs 23 中将编译缓冲区放在底部而不是右侧?

我想要发生的是在它们各自的窗口中保留项目的原始位置。

我正在使用 python 模式 6.0.10。

尝试 (setq split-width-threshold nil) 得到了不希望的结果:控制台确实停留在底部窗口,但右上角的窗口被删除,从而将设置减少为简单的水平分割。

emacs compile 和 latex-compile 似乎避免了这个问题,所以我猜这是 python 模式的问题。

有任何想法吗?

0 投票
1 回答
91 浏览

emacs - ipython 控制台 emacs 中的上一项在控制台提示之前将文本向左移动

我在 ipython 控制台中使用 python-mode 6.0.10。当我尝试调出以前的历史项目时,它会在控制台输入提示之前向左移动,例如

在 [51] 中:(点击 Mp 以获取上一个项目) plt.plot(u_class)In[51]:(在此之后点击 Mp 会产生“不是命令行”错误)。

我现在要做的是有效地杀死格式错误的先前项目文本并将其拉到 "In[51]:" 前面。之后,重复使用 Mp 即可按需要工作。

有没有办法来解决这个问题?这种行为发生在 OS X 和 Windows 上。

0 投票
1 回答
1702 浏览

python - 为什么 python 解释器不打印 python 模式的 emacs python shell 缓冲区中的输入代码和输出?

我当前在 emacs 中的 python 设置是:

在 python 文件中,我用 "Cc !" 启动 python 解释器。(py 壳)。我用“抄送|”评估代码区域 (py 执行区域)。

如果我单独执行以下每一行,

我在 python shell 缓冲区中得到以下内容:

如果我使用默认的 python 解释器,我会得到

问题:

  1. 这些行为是否正确(没有显示正在评估哪些代码,也没有显示 python 解释器通常会打印什么)?

  2. 如何设置它以便 python shell 像终端中的普通 python 解释器一样打印输出?(打印输入代码和输出)

我想我已经习惯了 R 的 ESS。谢谢。

0 投票
2 回答
1334 浏览

emacs - Emacs:如何在 python 模式下自动启动 python 解释器?

每次以 python 模式启动 Emacs 后,我需要在不同的缓冲区中打开解释器并更改新缓冲区的大小以适应 emacs-code-browser 的历史记录。我想自动化这个活动。

  • 如何自动化交互式 python shell 总是出现在屏幕截图中的额外缓冲区中(在 Emacs 启动之后)?

更新:见下文:workgroups.el 和 emacs-code-browser 似乎发生了冲突。看截图

编辑前

编辑前

编辑后

编辑后

我使用 Emacs23、emacs-code-browser 和 python-mode.el。

更新:我尝试使用 workgroups.el。我定义了一个新的python 工作组并将以下行添加到我的.emacs中:(wg-load "~/.emacs.d/workgroups/python_workgroup.wg")。然而,窗户被弄乱了。您可以在下面的屏幕截图中看到它:

它认为 emacs-code-browser 和我的工作组的设置发生冲突。有没有办法避免这种行为? 在此处输入图像描述

0 投票
1 回答
985 浏览

emacs - Emacs Python 模式和执行命令

C:\Program Files(x64)我在windows中和python2.7下安装了emacs24C:\Python27

我尝试安装 python 模式以从 emacs 向解释器发送命令。我的 init.el 文件位于Users/myname/.emacs.d

我已将 python 模式文件放入:C:\Users\myname\.emacs.d\python-mode.el-6.1.1

通过在菜单中选择 PyShell > Default Intepreter 选项,可以在缓冲区中形成交互式 python 会话,但是如果我打开一个 .py 文件并尝试通过转到菜单 PyExec > Execute Statement 来运行一个地狱般的世界,我会收到错误这种性质的:

Opening output file: no such file or directory, c:/Users/Ben/AppData/Local/Temp/C-/Python27/python.exe-705218Y.py

如何设置以便我可以编辑 python 代码,然后将行发送到另一个缓冲区中的 python 解释器而不会出现此错误?

0 投票
0 回答
100 浏览

emacs - Emacs 中的 Python 模式。导致永无止境的过程

如果我按下<TAB>像下面这样缩进的代码,Emacs 会进入一个无限的永无止境的过程,永远不会修复缩进

          在此处输入图像描述

我检查C-h k<TAB>绑定到(py-indent-line &optional ARG RECURSIVE),我认为这是正确的。

这是 Emacs 24.3 的最新稳定版本和 Python 模式的最新版本(6.1.1)。

0 投票
2 回答
319 浏览

emacs - emacs 入门工具包安装错误

我刚刚在 emacs 24.3 上安装了入门套件https://github.com/kjhealy/emacs-starter-kit 。完成后我有以下错误 警告(初始化):加载c:/emacs/.emacs.d/init.el': File error: Cannot open load file, python-mode To ensure normal operation, you should investigate and remove the cause of the error in your initialization file. Start Emacs with the--debug-init'选项时发生错误以查看完整的错误回溯。我该如何解决这个问题?