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.be>

3 réponses

Avatar
Bruno-L
Bruno-L a écrit :


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

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




merci à tous les deux,
j'ai plutot pondu ceci (les boucles loop sont pas dispo sous autocad, je
ne vais donc pas m'y intéresser):

(defun c:confi ()
(startapp
*emacs*
(strcat
""" *default-conf* """
" "" *local-conf* """
" "" *file-conf* """
" --eval "(setq buff (remove 'nil (mapcar '(lambda (x) (if
(buffer-file-name x) x)) (buffer-list))))""
" --eval "(delete-other-windows)""
" --eval "(switch-to-buffer (car buff))""
" --eval "(mapcar '(lambda (x) (split-window-vertically)
(switch-to-buffer x) (balance-windows)) (cdr buff))""
)
)
)

largement inspiré de Pascal Bourguignon (merci à lui)

--
Bruno <http://bluesilk.be>
Avatar
Florent Georges
Bruno-L wrote:

j'ai plutot pondu ceci (les boucles loop sont pas dispo sous autocad, je
ne vais donc pas m'y intéresser):



C'est une forme speciale Common Lisp. Mais ce n'est pas evalue dans
autocad mais bien dans Emacs. Et c'est une forme, mmh, interessante.

" --eval "(setq buff (remove 'nil (mapcar '(lambda (x) (if
(buffer-file-name x) x)) (buffer-list))))""
" --eval "(delete-other-windows)""
" --eval "(switch-to-buffer (car buff))""
" --eval "(mapcar '(lambda (x) (split-window-vertically)
(switch-to-buffer x) (balance-windows)) (cdr buff))""



Personnellement, j'aime la methode de Pascal d'utiliser un progn
definissant une fonction et l'appelant. Ou au moins un progn. Mais
une sequence d'arguments --eval ...

--drkm
Avatar
Bruno-L
Florent Georges a écrit :

Personnellement, j'aime la methode de Pascal d'utiliser un progn
definissant une fonction et l'appelant. Ou au moins un progn. Mais
une sequence d'arguments --eval ...



entièrement d'accord avec toi!
et d'ailleurs l'ouverture d'emacs est plus rapide
merci ;-)


--drkm





--
Bruno <http://bluesilk.be>