je trouve le mode mupad trop complique pour moi, et il y avait des choses que je ne savais pas faire:
Ce qui m'interessait etait d'avoir:
dans emacs: Envoyer une ligne ou une region a giac, sans avoir a tout reevaluer.
par exemple:
f(x):={
x+1;
}
ne marche pas en copier/coller dans un terminal.
En glanant des exemples pour le shell j'en suis a quelque chose qui me convient:
(pour moi giac marche mieux sous emacs en mode giac sans le --emacs. par exemple j'ai bien le control fleche haut pour l'historique ...)
Y aurait t'il un truc dans giac pour bloquer les affichages trop long?
Voila
Fred
Code : Tout sélectionner
;;; Giac send line or region
(global-set-key (kbd "<f11>") 'giac-sendcommand)
;
(defun giac ()
"Run Giac in a buffer."
(interactive)
(switch-to-buffer (apply 'make-comint "giac" "giac" nil))
)
;
(defun giac-send-line-or-region (&optional step)
(interactive ())
(let ((proc (get-process "giac"))
pbuf min max command)
(unless proc
(let ((currbuff (current-buffer)))
(giac)
(switch-to-buffer currbuff)
(setq proc (get-process "giac"))
(display-buffer (process-buffer proc) t)
))
(setq pbuff (process-buffer proc))
(if (use-region-p)
(setq min (region-beginning)
max (region-end))
(setq min (point-at-bol)
max (point-at-eol)))
(setq command (buffer-substring min max) )
(while (string-match "//.*$" command);remove the inline giac comments
(setq command (replace-match "" t t command)))
(while (string-match "\n" command)
(setq command (replace-match "" t t command)))
(setq command (concat command "\n"))
(with-current-buffer pbuff
(goto-char (process-mark proc))
(insert command)
(move-marker (process-mark proc) (point))
)
(process-send-string proc command)
;(display-buffer (process-buffer proc) t)
(when step
(next-line))
))
(defun giac-sendcommand ()
(interactive)
(giac-send-line-or-region t))
(defun giac-switch-to-process-buffer ()
(interactive)
(pop-to-buffer (process-buffer (get-process "giac")) t))
;;;Fin Giac