"Eduardo Ochs" <notificati...@github.com> writes:

> I think that what you are proposing is this:
>
>   (defun eepitch-shell-init  () (interactive) (eepitch-shell)  (eepitch-kill) 
> (eepitch-shell))

Yes, modulo renaming.  The code below allows one to generate the
definitions en masse (should one so desire).

#+begin_src elisp
  (defun my/eepitch-init/mk (name)
    "Make various eepitch-init-NAME functions."
    (let* ((namestr (symbol-name name))
           (cmdstr (concat "eepitch-" namestr))
           (cmd (intern cmdstr))
           (funstr (concat "eepitch-init-" namestr))
           (fun (intern funstr))
           (docstr (format "Initialize `%s' buffer.
This function was generated by `my/eepitch-init/mk'."
                           cmdstr)))
      `(defun ,fun ()
         ,docstr
         (interactive)
         (,cmd)
         (eepitch-kill)
         (,cmd))))
  (defmacro my/eepitch-init/gen ()
    `(progn ,@ (mapcar 'my/eepitch-init/mk
                       '(R bash bsh clojure coqtop dash erl eshell eshell2
                           eshell3 expect fennel gcl gforth ghci gnuplot gs gst
                           guile hugs hugs98 ielm irb isympy julia ksh labltk
                           latex lua51 lua52 lua53 lua54 luajit lualatex luatex
                           maxima mf mitscheme mozrepl mpost mysql nodejs ocaml
                           octave pacmd perl pforth php polyml pwsh pwsh2 python
                           python2 python3 racket raku ruby sbcl scala scheme
                           scsh sh shell shell2 shell3 smjs sml tcl tclsh tcsh
                           tex tinyscheme wish yforth zsh))))
  (my/eepitch-init/gen)
#+end_src

-- 
Suhail


Reply via email to