python 模式下的 emacs "comint-send-string: Buffer *spam* has no process"
emacs "comint-send-string: Buffer *spam* has no process" in python-mode
我有一组简单的 emacs lisp 行,用于插入我的姓名首字母和 time/datestamp,但这在某些模式下已停止工作(例如,python-模式)。在这些模式下,它会抛出错误 comint-send-string: Buffer *spam* has no process
,其中 'spam' 是我尝试将时间戳添加到的缓冲区。
lisp 行是:
(defun msl-insert-datetime () (interactive) (insert (format-time-string "%Y-%m-%d %H:%M ABC: ")))
(global-set-key [(control c)(control d)] 'msl-insert-datetime)
这在各种模式(文本模式、lisp 模式等)的缓冲区中工作正常,插入类似 2020-05-20 21:44 ABC:
的东西。但是在 Python 模式下(我在其中进行大部分编程)我得到的是上面的消息。
欢迎提出任何建议!我是 运行 Emacs 26.3 (build 2) Ubuntu 20.04.
C-cC-d 可能绑定在 python-mode
中(大概绑定到想要与劣质进程对话的东西)。
(global-set-key [(control c)(control d)] 'msl-insert-datetime)
这绑定了全局键映射中的序列——这是最低优先级键映射——并且你选择了一个为主要模式保留的序列。
Sequences consisting of ‘C-c’ followed by a control character or a digit are reserved for major modes.
-- C-hig (elisp)Key Binding Conventions
因此,一些主要模式在其(更高优先级)主要模式键盘映射中绑定它也就不足为奇了。
您可以在全局映射中更安全地使用某些其他序列,而不必担心它们被其他键映射使用:
Sequences consisting of ‘C-c’ and a letter (either upper or lower
case) are reserved for users. Function keys <F5> through <F9>
without modifier keys are also reserved for users to define.
请注意,您可以将此类序列用作前缀绑定,因此 lots 自定义命令可能会挂起 C-cd(例如)。
如果您的键盘上有 Super and/or Hyper 修改键,Emacs 通常也不会使用它们(至少默认情况下是这样)。
我还删除了默认的 C-z 绑定并将其用作自定义绑定的另一个前缀。
最后,我强烈建议阅读 https://www.masteringemacs.org/article/mastering-key-bindings-emacs 以了解键映射及其优先级。
我有一组简单的 emacs lisp 行,用于插入我的姓名首字母和 time/datestamp,但这在某些模式下已停止工作(例如,python-模式)。在这些模式下,它会抛出错误 comint-send-string: Buffer *spam* has no process
,其中 'spam' 是我尝试将时间戳添加到的缓冲区。
lisp 行是:
(defun msl-insert-datetime () (interactive) (insert (format-time-string "%Y-%m-%d %H:%M ABC: ")))
(global-set-key [(control c)(control d)] 'msl-insert-datetime)
这在各种模式(文本模式、lisp 模式等)的缓冲区中工作正常,插入类似 2020-05-20 21:44 ABC:
的东西。但是在 Python 模式下(我在其中进行大部分编程)我得到的是上面的消息。
欢迎提出任何建议!我是 运行 Emacs 26.3 (build 2) Ubuntu 20.04.
C-cC-d 可能绑定在 python-mode
中(大概绑定到想要与劣质进程对话的东西)。
(global-set-key [(control c)(control d)] 'msl-insert-datetime)
这绑定了全局键映射中的序列——这是最低优先级键映射——并且你选择了一个为主要模式保留的序列。
Sequences consisting of ‘C-c’ followed by a control character or a digit are reserved for major modes.
-- C-hig (elisp)Key Binding Conventions
因此,一些主要模式在其(更高优先级)主要模式键盘映射中绑定它也就不足为奇了。
您可以在全局映射中更安全地使用某些其他序列,而不必担心它们被其他键映射使用:
Sequences consisting of ‘C-c’ and a letter (either upper or lower case) are reserved for users. Function keys <F5> through <F9> without modifier keys are also reserved for users to define.
请注意,您可以将此类序列用作前缀绑定,因此 lots 自定义命令可能会挂起 C-cd(例如)。
如果您的键盘上有 Super and/or Hyper 修改键,Emacs 通常也不会使用它们(至少默认情况下是这样)。
我还删除了默认的 C-z 绑定并将其用作自定义绑定的另一个前缀。
最后,我强烈建议阅读 https://www.masteringemacs.org/article/mastering-key-bindings-emacs 以了解键映射及其优先级。