5

In ESS mode, I sometimes send some code to the process buffer and want to cancel it using C-c C-c. Can I do this without actually switching to the process window from the script window?

3 Answers 3

5

You'll need to write your own function for doing this.

You'll want to read up on the functions get-buffer-process and signal-process to learn about how to send the right signal to the ESS process.

Here is an example: An interactive function that sends a SIGINT to a buffer of your choosing.

You can modify this function to target whatever ESS buffer you want or keep it as is.

(defun interrupt-buffer-process (buffer)
  "Send a SIGINT to BUFFERs process."
  (interactive (list 
                (completing-read 
                 "Buffer: "
                 (mapcar 'buffer-name (remove-if-not 'get-buffer-process (buffer-list))))))
  (signal-process (get-buffer-process buffer) 'sigint))
1
  • Thank you very much! That did it!
    – Arktik
    Commented Aug 23, 2019 at 20:46
3

You can do M-x ess-interrupt.

2

Sorry not sure how to paste this as a comment, this works for ESS:

(defun my-interrupt-ess-buffer-process ()
  "Send a SIGINT to script's iESS process."
  (interactive)
  (signal-process (ess-get-process-buffer) 'sigint))

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.