Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

ouverture d'emacs avec 3 nom de fichiers en parrametre

3 réponses
Avatar
Bruno-L
Salut tout le monde,

J'arrive au départ d'AutoCAD qui parle lisp lui aussi (enfin presque
;-), à ouvrir un emacs en lui indiquant deux fichiers comme ceci:

(startapp path-to-emacs (strcat "\"" file1 "\" \"" file2 "\""))

strcat = concat, les "\"" permet d'avoir des espaces dans le nom des
fichiers.

emacs s'ouvre, se divise en deux fenetres et y affiche ces deux
fichiers.;; magnifique ;-)

mais lorsque je demande, par la même voie à emacs d'ouvrir un troisième
fichier, il ne se divise qu'en deux fenetres (au lieu de trois comme
j'imaginais) et mets la liste des buffers dans l'une d'elles.

or je voudrais qu'il ouvre 3 fenêtres et y insere les 3 fichiers passés
en parrametres. comment faire ?

merci d'avance




--
Bruno <http://bluesilk.canalblog.com>

3 réponses

Avatar
Florent Georges
Bruno-L wrote:

mais lorsque je demande, par la même voie à emacs d'ouvrir un troisi ème
fichier, il ne se divise qu'en deux fenetres (au lieu de trois comme
j'imaginais) et mets la liste des buffers dans l'une d'elles.

or je voudrais qu'il ouvre 3 fenêtres et y insere les 3 fichiers pass és
en parrametres. comment faire ?



C'est normal. Si tu veux ce comportement particulier, il te suffit
de creer une fonction qui fait ce que tu veux, et de l'appeler depuis
la ligne de commande (ou depuis AutoCAD).

Je n'ai pas le temps de te pondre un squelette maintenant,
malheureusement. Mais si tu utilises Lisp dans AutoCAD, tu ne devrais
pas etre perdu (tu auras juste bien besoin de 'C-h i m elisp RET').

--drkm
Avatar
Pascal Bourguignon
Bruno-L writes:

Salut tout le monde,

J'arrive au départ d'AutoCAD qui parle lisp lui aussi (enfin presque
;-), à ouvrir un emacs en lui indiquant deux fichiers comme ceci:

(startapp path-to-emacs (strcat """ file1 "" "" file2 """))

strcat = concat, les """ permet d'avoir des espaces dans le nom des
fichiers.

emacs s'ouvre, se divise en deux fenetres et y affiche ces deux
fichiers.;; magnifique ;-)

mais lorsque je demande, par la même voie à emacs d'ouvrir un
troisième fichier, il ne se divise qu'en deux fenetres (au lieu de
trois comme j'imaginais) et mets la liste des buffers dans l'une
d'elles.

or je voudrais qu'il ouvre 3 fenêtres et y insere les 3 fichiers
passés en parrametres. comment faire ?



Il faudrait faire executer par emacs un petit script pour afficher
tous les buffers contenant des fichiers:

---(auto-lisp)----------------------------------------------------------

(startapp path-to-emacs
(strcat """ file1 """
" " """ file2 """
;; ... on peut ajouter autant de fichier qu'on veut ...
" " "-eval" "(progn ;; ------(emacs-lisp)-------
(require (quote cl))
(defun spread-files ()
(interactive)
(let ((files (loop for buffer in (buffer-list)
when (buffer-file-name buffer)
collect buffer)))
(when files
(delete-other-windows)
(switch-to-buffer (first files))
(loop
for file in files
do (progn (split-window-vertically)
(switch-to-buffer file)
(balance-windows))))))
(spread-files))"))

------------------------------------------------------------------------


--
__Pascal Bourguignon__ http://www.informatimago.com/

"I have challenged the entire quality assurance team to a Bat-Leth
contest. They will not concern us again."
Avatar
Florent Georges
Pascal Bourguignon wrote:

(balance-windows))))))



Tiens, je ne connaissais pas celle-la. Je sens que je vais me servir
de 'C-x +' plus d'une fois (et un peu mois de 'C-u C-x ^' :-p).

--drkm