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