如何阻止emacs突出显示shell中鼠标下的行

时间:2015-01-27 14:42:59

标签: shell emacs

在emacs shell中,使用M-x shell调用,光标下的输入行会突出显示,因此您可以“鼠标2:在提示后插入作为新输入”来重复命令。我不想激活这个,只是选择鼠标下的文本,就像我在常规终端中选择文本并点击中间点击(我知道我可以在emacs中执行此操作,但是在我停止之前我没有得到任何视觉反馈小鼠选择)。

有没有办法做到这一点?我做了很多搜索,找不到任何东西。

2 个答案:

答案 0 :(得分:1)

该消息来自this function in comint.el

comint-use-prompt-regexp设置为非零值应该可以达到您想要的效果。

一个好的解决方案可能是这样的(在初始化中放置以下内容;从comint-prompt-regexp docstring中取出regexp):

(add-hook 'shell-mode-hook
          (lambda ()
            (set (make-local-variable 'comint-use-prompt-regexp) t)
            (set (make-local-variable 'comint-prompt-regexp) "^[^#$%>\n]*[#$%>] *")))

答案 1 :(得分:0)

你没有指定Emacs的版本,我没有在我的Emacs中看到为什么我输入M-x shell的行为。然而,有点谷歌搜索出现了这个:

(setq comint-highlight-input nil)

可以在〜/ .emacs中设置。

此变量在GNU Emacs 25中不存在,即使在该情况下存在对特定面(突出显示)的引用。这可能只是从功能何时可用或者实际上是通过另一个包启用的东西的回忆。您可以通过使用“-Q”选项启动emacs进行测试,并首先启动shell,如果没有出现该行为,则它与您的启动配置相关,或者您在启动shell之前执行的操作。

在这里可以看到提到上述变量的帖子:

https://stat.ethz.ch/pipermail/ess-help/2002-August/001134.html