Notepad++ 在 Python 控制台无缝运行选中代码

13 投票
1 回答
4435 浏览
提问于 2025-04-17 04:20

我经常用R语言来分析数据,特别喜欢用Notepad++配合NppToR这个插件。NppToR的一个好处是可以很方便地运行代码的一部分。我只需要选中一段R代码,然后按F8,代码就会在R控制台中神奇地运行起来。

现在,我需要用Python来分析数据。我知道ipython非常适合进行交互式操作,但每次都要手动复制一段Python代码再粘贴到ipython控制台里,真的很麻烦。而且代码的缩进常常会出错,导致整行代码都无法运行。需要注意的是,我想运行的是“选中的”代码行,而不是整个文件。

所以我在寻找一个类似于NppToR的程序、插件或宏,可以在Python/ipython控制台中使用。我在网上搜索过,但没有找到这样的工具。有些插件不错,但并不是我想要的。例如,Python Script可以扩展Notepad++本身,但不能在外部使用。还有一些其他的“运行”扩展只能运行整个文件,而不是我选中的部分。

1 个回答

5

你可以自定义IPython使用的编辑器,让它使用Notepad++。IPython 0.11会在你的用户文件夹里创建一个.ipython/profile_default的文件夹(比如我的是C:/Users/zk/.ipython/profile_default)。要让IPython使用Notepad++,你需要在.ipython/profile_default文件夹里创建一个ipython_config.py文件,内容如下:

c = get_config()
# use DOS style path, C:/PROGRA~2 on my 64-bit system points to C:/Program Files (x86)
c.TerminalInteractiveShell.editor = 'C:\PROGRA~2\NOTEPA~1\NOTEPA~1.exe'
# set editor for Qt Console, if you wish to use that
c.IPythonWidget.editor = 'C:\PROGRA~2\NOTEPA~1\NOTEPA~1.exe'

然后你可以启动IPython,使用edit命令来从IPython运行Notepad++,保存并关闭Notepad++后,IPython会执行你编辑的文件。

如果你不介意安装PyQt4pyzmq(我认为还需要pygments,至少对于IPython 0.12-dev来说),IPython的Qt控制台效果非常好(说实话,这是你能找到的最好的Python交互环境)。你可以直接把代码粘贴到IPython里,它会自动调整缩进(把多余的空格移到合适的位置)。

撰写回答