【问题标题】:Avoid accidental execution in comint mode避免在comint模式下意外执行
【发布时间】:2018-07-10 23:29:49
【问题描述】:

有时在 comint 模式下,该点位于缓冲区中的任何位置,我错误地按了Return。这会将文本点发送到底层过程,这可能非常危险。此文本通常包含许多行,并且,无论是否偶然,其中之一可能是有效的命令。

有没有办法告诉 comint 除了最后一个输入之外不要在Return 上执行任何操作?

【问题讨论】:

  • comint.el:comint-get-old-input-default 中的评论似乎表明您观察到的行为是一个错误。我建议您使用M-x report-emacs-bug 报告它。
  • 我不认为这是一个错误,多年来它一直是任何劣质模式的一致行为,并且该注释似乎与注释函数在点在输入线而不是在输出线。

标签: emacs comint-mode


【解决方案1】:

记录的方式似乎是用自定义函数覆盖comint-get-old-input 变量。最简单的是这样的:

(setq comint-get-old-input (lambda () (end-of-buffer) (comint-get-old-input-default)))

它首先到达缓冲区的末尾,然后才调用coming-get-olt-input-default,实际上不会弄乱之前的输出。把它放在你的init.el,简单的测试表明它有效。

【讨论】:

    猜你喜欢
    • 2021-11-28
    • 2021-08-04
    • 1970-01-01
    • 2019-12-22
    • 2012-03-08
    • 2014-03-21
    • 1970-01-01
    • 1970-01-01
    • 2014-02-02
    相关资源
    最近更新 更多