如果我M-x <RET> compile <RET>
,我会收到提示要编译的内容。我想要编译的是python中的当前缓冲区,所以我输入python test.py <RET>
。现在有时我会被问到是否要创建一个单独的流程,我总是想说y
(这是肯定的)。
(define-key python-mode-map "\C-b" 'compile)
出现以下错误:
(define-key global-map "\C-b" 'compile)
有效,但这与我的需要相去甚远。
那么,我如何将compile python current-buffer-name
映射到"\C-b"
?
答案 0 :(得分:0)
Emacs确实有模式的概念。我想你不想将python编译成全局密钥。
你检查过: http://www.emacswiki.org/emacs?action=browse;oldid=PythonMode;id=PythonProgrammingInEmacs
您所做的就是调用外部程序。我确信在python模式下有更好的方法可以做到这一点。
如果你想将一个以上的命令包装到一个键上,你必须编写某种包装器,这个函数包含你要调用的所有东西。
答案 1 :(得分:0)
在您加载python-mode-map
之前,不会定义变量python-mode
。蛮力方法是从(require 'python-mode)
.emacs
开始,但只需在调用python-mode
时进行定义,就可以避免更优雅。
(add-hook 'python-mode-hook
(lambda ()
(define-key python-mode-map "\C-b" #'compile)))