gpt4 book ai didi

python - 在 IPython 模式下更改 Emacs “send code to interpreter” C-c C-r 命令

转载 作者:太空狗 更新时间:2023-10-30 01:58:27 25 4
gpt4 key购买 nike

这里的问题与 Change the "send code to interpreter" (C-c |) command in python-mode 相关(但不完全相同)并且是互补的.

我在 Mac 10.9.5、Emacs 24.4、Python 2.7.8 和 IPython 2.2.0 上工作。

我的想法是改变C-c C-r emacs 命令以 IPython 模式将代码区域/行发送到 C-RET ,就像使用 R 时一样。这是因为我通常使用 R,但从现在开始,我将使用 R 和 Python(尤其是 IPython,我非常喜欢),以及 C-RET --已经是 R 中的发送代码命令--对我来说似乎更舒服。

在这个问题开头引用的链接中,他们建议将以下行添加到 .emacs文件更改 C-c |命令进入 C-c C-r :

(eval-after-load "python"
'(progn
(define-key python-mode-map (kbd "C-c C-r") 'python-shell-send-region)))

此刻,我的 python/IPython 配置在我的 .emacs 中文件看起来像这样:

;; Enable Python
(add-to-list 'load-path "/sw/lib/python-mode-1.0")
(load "python-mode")
(setq auto-mode-alist
(cons '("\\.py$" . python-mode) auto-mode-alist))
(setq interpreter-mode-alist
(cons '("python" . python-mode)
interpreter-mode-alist))
(autoload 'python-mode "python-mode" "Python editing mode." t)

;; Ipython. This python-mode takes the Key-map and the menu
(when (executable-find "ipython")
(setq
python-shell-interpreter "ipython"
python-shell-interpreter-args ""
python-shell-prompt-regexp "In \\[[0-9]+\\]: "
python-shell-prompt-output-regexp "Out\\[[0-9]+\\]: "
python-shell-completion-setup-code
"from IPython.core.completerlib import module_completion"
python-shell-completion-module-string-code
"';'.join(module_completion('''%s'''))\n"
python-shell-completion-string-code
"';'.join(get_ipython().Completer.all_completions('''%s'''))\n"))

这是两种并行运行的 python 模式,第二种模式(IPython,我一直使用的模式)采用键映射和菜单(顺便说一下,欢迎提出更好配置的任何建议。IPython部分基于:How to open IPython interpreter in emacs? )。

我尝试添加 (eval-after-load "python" '(progn ...之前在我的 python 配置末尾描述的命令(当然,将 C-c C-r 更改为 C-RETC-ret 甚至 C-<return> )。

我也在 when (executable-find "ipython") ... 内试过不同形式的 block (例如简单的 (define-key python-mode-map (kbd "C-c C-r") 'python-shell-send-region) )。但似乎没有任何效果。

因此,我的问题是:鉴于我的 Python/IPython 配置,我必须在 .emacs 中包含什么?文件更改 C-c C-r命令进入(C-RET)

非常感谢!

最佳答案

使用(kbd "RET")

用 python.el 试试这个

(eval-after-load "python"
'(define-key python-mode-map [(control c)(kbd "RET")] 'python-shell-send-region))

WRT python-mode.el:

(eval-after-load "python-mode"
'(define-key python-mode-map [(control c) (kbd "RET")] 'py-execute-region))

顺便说一句,除非需要 IPython 独有的功能,否则建议通过通用 Python 从 Emacs 执行代码。 IPython 实现了一堆很酷的东西,它们可能看起来与 Emacs 正交,Emacs 也实现了一堆很酷的东西。

关于python - 在 IPython 模式下更改 Emacs “send code to interpreter” C-c C-r 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27777133/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com