Search code examples
emacseshell

Emacs Function to Open a New Eshell and Rename it


I run debian stable on my box and after updating to debian 12 today, one function in my .emacs file is giving me a headache (I am not an elisp expert and I do not remember where it came from). The function is



(fset 'aux
   (lambda (&optional arg) "Keyboard macro." (interactive "p") (kmacro-exec-ring-item (quote ([21 escape 120 101 115 104 101 108 108 return escape 120 114 101 110 97 109 return 97 117 120 105 108 105 97 114 121 return] 0 "%d")) arg)))


using M+aux, this function used to open a second eshell on emacs and rename it "auxiliary"

After updating debian and emacs, now the function opens a new eshell, but passes the command auxiliary, after which eshell complains because the command does not exist.

What happens and how to recover the previous behavior of the function?


Solution

  • Indeed this was a macro. I recorded a new one

     (fset 'aux
      (kmacro-lambda-form [f5 escape ?x ?r ?e ?n ?a ?m ?e ?- ?b ?u ?f ?f ?e ?r return ?a ?u ?x ?i ?l ?i ?a ?r ?y return] 0 "%d"))
    

    Which gets the job done.