Avoid accidental execution in comint mode

87 Views Asked by At

Sometimes when in comint mode the point is anywhere in the buffer and I press Return by mistake. This sends the text at point to the underlying process, which can be really dangerous. Often this text contains many lines and, by chance or not, one of them could be a valid command.

Is there any way to tell comint not to execute anything on Return except the last input?

1

There are 1 best solutions below

0
On

The documented way seems to be override comint-get-old-input variable with a custom function. Easiest will be something like this:

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

It goes to the end of buffer first, and only then calls coming-get-olt-input-default, effectively not messing with the previous output. Put it in your init.el, brief testing shows that it works.