OVH Cloud OVH Cloud

petites questions de debutant

8 réponses
Avatar
roger21
salut,

d'abord j'ai un petit soucis : je perd ma config (notamant les polices
du .emacs) quand j'ouvre une nouvelle fenetre (carde) avec C-X 5 2
qu'est-ce qu'il faut que je fasse pour que ma config soit
autiomatiquement transmise aux nouvelles fenetres ?

ensuite j'aimerais faire une recherche a l'interieur de tous mes les
fichiers ouverts une sorte de "grep toto *" c'est quoi la commande qu'il
me faut ?

enfin j'ai un doute sur la souris : quand je fait appelle a la
completion et qu'il m'ouvre un buffer avec les differentes possibilités
correspondantes j'ai un beau highlight quand je passe le curseur sur
l'element qui me va et je me dis qu'avec le clic qui va bien ca va me
l'activer mais en fait rien quelquesoit le clic (milieu, les deux,
double ...) y'a surrement une config a mettre pour que ca marche, non ?

et puis aussi je me demandais qu'elle serait la commande approprié pour
réexecuter mon .emacs, pour l'instant je fais un c-x e sur la ligne qui
m'intereesse mais une execution global ne serait pas ininteressante,
j'ai recherché l'execution d'un fichier mais j'ai pas trouvé ...

et encore une pour la route : est-ce que je peu avoir une scroll bar
toute moche et pas intuitive comme sous linux et la mettre a gauche au
lieu de la scroll bar graphique habituelle de windows ?

merci

8 réponses

Avatar
roger21
roger21 wrote:

salut,

d'abord j'ai un petit soucis : je perd ma config (notamant les polices
du .emacs) quand j'ouvre une nouvelle fenetre (carde) avec C-X 5 2
qu'est-ce qu'il faut que je fasse pour que ma config soit
autiomatiquement transmise aux nouvelles fenetres ?

ensuite j'aimerais faire une recherche a l'interieur de tous mes les
fichiers ouverts une sorte de "grep toto *" c'est quoi la commande qu'il
me faut ?

enfin j'ai un doute sur la souris : quand je fait appelle a la
completion et qu'il m'ouvre un buffer avec les differentes possibilités
correspondantes j'ai un beau highlight quand je passe le curseur sur
l'element qui me va et je me dis qu'avec le clic qui va bien ca va me
l'activer mais en fait rien quelquesoit le clic (milieu, les deux,
double ...) y'a surrement une config a mettre pour que ca marche, non ?

et puis aussi je me demandais qu'elle serait la commande approprié pour
réexecuter mon .emacs, pour l'instant je fais un c-x e sur la ligne qui
m'intereesse mais une execution global ne serait pas ininteressante,
j'ai recherché l'execution d'un fichier mais j'ai pas trouvé ...

et encore une pour la route : est-ce que je peu avoir une scroll bar
toute moche et pas intuitive comme sous linux et la mettre a gauche au
lieu de la scroll bar graphique habituelle de windows ?

merci




bon j'ai oublié de precisé que je suis sous windows,
pour la souris, j'ai pas les fonction w32-num ... w32-mouse ... c'est
normal docteur ?
merci
Avatar
drkm
roger21 writes:

d'abord j'ai un petit soucis : je perd ma config (notamant les polices
du .emacs) quand j'ouvre une nouvelle fenetre (carde) avec C-X 5 2
qu'est-ce qu'il faut que je fasse pour que ma config soit
autiomatiquement transmise aux nouvelles fenetres ?



Je ne m'y connais pas du tout dans ce qui a trait aux polices.
Peut-être serait-ce intéressant que tu postes ce qui se trouve dans
ton <FILE:~/.emacs> à ce sujet.

ensuite j'aimerais faire une recherche a l'interieur de tous mes les
fichiers ouverts une sorte de "grep toto *" c'est quoi la commande qu'il
me faut ?



C'est à dire avoir un buffer qui comprend les lignes correspondant à
une expression régulière dans tous les buffers ? Tiens, je n'ai rien
trouvé. Si personne ne connait quelque chose, tu peux toujours te
servir du bout de code suivant. Attention, je l'ai développé vite
fait, sans vraiment le tester, et certaines choses sont à améliorer.
À tes risques et périls, donc.

(defvar all-buffers-occur-buffer "*All Buffer Occur*"
"FIXME<docstring>: ...")

(defun all-buffers-occur (regexp &optional nlines)
"FIXME<docstring>: ..."
(interactive
(list (let* ((default (car regexp-history))
(input
(read-from-minibuffer
(if default
(format "List lines matching regexp (default `%s'): "
default)
"List lines matching regexp: ")
nil nil nil 'regexp-history default t)))
(and (equal input "") default
(setq input default))
input)
current-prefix-arg))
(let ((output (get-buffer-create all-buffers-occur-buffer)))
(mapc 'all-buffers-occur1 (buffer-list))
(let ((occur-buf (get-buffer "*Occur*")))
(when occur-buf
(let ((win (get-buffer-window occur-buf)))
(set-window-buffer win output)
(select-window win))))))

(defun all-buffers-occur1 (buffer)
"FIXME<docstring>: ..."
(set-buffer buffer)
(occur regexp nlines)
(let ((occur-buf (get-buffer "*Occur*")))
(when occur-buf
(set-buffer occur-buf)
(let ((content (buffer-string)))
(set-buffer output)
(insert content)))))

À ce propos. La forme `interactive' est un copier-coller de celle
de `occur()'. N'y a-t-il pas moyen dans ce cas d'utiliser
`interactive-form()' ?

Je n'ai pas non plus trouvé de moyen de dire à `isearch' de cycler
sur la buffer list lorsque l'on se trouve en fin de buffer, plutôt que
de recommencer au début du buffer courant. Y a-t-il moyen ?

enfin j'ai un doute sur la souris : quand je fait appelle a la
completion et qu'il m'ouvre un buffer avec les differentes possibilités
correspondantes j'ai un beau highlight quand je passe le curseur sur
l'element qui me va et je me dis qu'avec le clic qui va bien ca va me
l'activer mais en fait rien quelquesoit le clic (milieu, les deux,
double ...) y'a surrement une config a mettre pour que ca marche, non ?



Je ne sais pas, je n'utilise jamais la souris.

et puis aussi je me demandais qu'elle serait la commande approprié
pour réexecuter mon .emacs, pour l'instant je fais un c-x e sur la
ligne qui m'intereesse mais une execution global ne serait pas
ininteressante, j'ai recherché l'execution d'un fichier mais j'ai pas
trouvé ...



Si le fichier n'est pas ouvert :

M-x load-file <RET> ~/.emacs <RET>

(`C-a C-k' sera peut-être nécessaire avant le nom de fichier, selon ta
configuration) ou si tu te trouves dans le buffer :

M-x eval-buffer

Il y a aussi `load-library()' qui peut s'avérer très pratique dans
d'autres situations.

et encore une pour la route : est-ce que je peu avoir une scroll bar
toute moche et pas intuitive comme sous linux et la mettre a gauche au
lieu de la scroll bar graphique habituelle de windows ?



Je ne suis pas sûr de comprendre. Si tu veux juste avoir ta
scroll-bar à gauche, la ligne suivante dans ton <FILE:~/.emacs>
devrait faire l'affaire :

(push '(vertical-scroll-bars . left) default-frame-alist)

--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html
Avatar
roger21
drkm wrote:
roger21 writes:


d'abord j'ai un petit soucis : je perd ma config (notamant les polices
du .emacs) quand j'ouvre une nouvelle fenetre (carde) avec C-X 5 2
qu'est-ce qu'il faut que je fasse pour que ma config soit
autiomatiquement transmise aux nouvelles fenetres ?




Je ne m'y connais pas du tout dans ce qui a trait aux polices.
Peut-être serait-ce intéressant que tu postes ce qui se trouve dans
ton <FILE:~/.emacs> à ce sujet.



le voici le voila http://roger21.free.fr/emacs (là y'a pas le point mais
normalement il y est :))

ensuite j'aimerais faire une recherche a l'interieur de tous mes les
fichiers ouverts une sorte de "grep toto *" c'est quoi la commande qu'il
me faut ?




C'est à dire avoir un buffer qui comprend les lignes correspondant à
une expression régulière dans tous les buffers ? Tiens, je n'ai rien
trouvé. Si personne ne connait quelque chose, tu peux toujours te
servir du bout de code suivant. Attention, je l'ai développé vite
fait, sans vraiment le tester, et certaines choses sont à améliorer.
À tes risques et périls, donc.

(defvar all-buffers-occur-buffer "*All Buffer Occur*"
"FIXME<docstring>: ...")

(defun all-buffers-occur (regexp &optional nlines)
"FIXME<docstring>: ..."
(interactive
(list (let* ((default (car regexp-history))
(input
(read-from-minibuffer
(if default
(format "List lines matching regexp (default `%s'): "
default)
"List lines matching regexp: ")
nil nil nil 'regexp-history default t)))
(and (equal input "") default
(setq input default))
input)
current-prefix-arg))
(let ((output (get-buffer-create all-buffers-occur-buffer)))
(mapc 'all-buffers-occur1 (buffer-list))
(let ((occur-buf (get-buffer "*Occur*")))
(when occur-buf
(let ((win (get-buffer-window occur-buf)))
(set-window-buffer win output)
(select-window win))))))

(defun all-buffers-occur1 (buffer)
"FIXME<docstring>: ..."
(set-buffer buffer)
(occur regexp nlines)
(let ((occur-buf (get-buffer "*Occur*")))
(when occur-buf
(set-buffer occur-buf)
(let ((content (buffer-string)))
(set-buffer output)
(insert content)))))

À ce propos. La forme `interactive' est un copier-coller de celle
de `occur()'. N'y a-t-il pas moyen dans ce cas d'utiliser
`interactive-form()' ?

Je n'ai pas non plus trouvé de moyen de dire à `isearch' de cycler
sur la buffer list lorsque l'on se trouve en fin de buffer, plutôt que
de recommencer au début du buffer courant. Y a-t-il moyen ?



impressionnant !!
je m'attendais pas trop a ca mais c'est complettement terrible donc ca
devrait aller y'a juste un soucis c'est qu'il recherche aussi dans le
buffer créé (c'est un peu paradoxal) du coup y'a les infos en double ...
enfin c'est pas vraiment un problème ... y faut que j'apprenne a faire
ce genre de fonctions ... merci grandement

enfin j'ai un doute sur la souris : quand je fait appelle a la
completion et qu'il m'ouvre un buffer avec les differentes possibilités
correspondantes j'ai un beau highlight quand je passe le curseur sur
l'element qui me va et je me dis qu'avec le clic qui va bien ca va me
l'activer mais en fait rien quelquesoit le clic (milieu, les deux,
double ...) y'a surrement une config a mettre pour que ca marche, non ?




Je ne sais pas, je n'utilise jamais la souris.


et puis aussi je me demandais qu'elle serait la commande approprié
pour réexecuter mon .emacs, pour l'instant je fais un c-x e sur la
ligne qui m'intereesse mais une execution global ne serait pas
ininteressante, j'ai recherché l'execution d'un fichier mais j'ai pas
trouvé ...




Si le fichier n'est pas ouvert :

M-x load-file <RET> ~/.emacs <RET>

(`C-a C-k' sera peut-être nécessaire avant le nom de fichier, selon ta
configuration) ou si tu te trouves dans le buffer :

M-x eval-buffer

Il y a aussi `load-library()' qui peut s'avérer très pratique dans
d'autres situations.



parfait, c'est exactement ce que je cherchais

et encore une pour la route : est-ce que je peu avoir une scroll bar
toute moche et pas intuitive comme sous linux et la mettre a gauche au
lieu de la scroll bar graphique habituelle de windows ?




Je ne suis pas sûr de comprendre. Si tu veux juste avoir ta
scroll-bar à gauche, la ligne suivante dans ton <FILE:~/.emacs>
devrait faire l'affaire :

(push '(vertical-scroll-bars . left) default-frame-alist)



bon ca ca marche pas mais c'est surrement a cause de windows, ce que je
veux n'y est p-e pas possible .. en fait pour eclaircir un peu mon
propos, ce que j'aurais voulu c'est la scrollbar en mode text (c'était
p-e que sur les vieux emacs je sais pas)

merci encore pour ces reponses
Avatar
roger21
roger21 wrote:

(push '(vertical-scroll-bars . left) default-frame-alist)




bon ca ca marche pas mais c'est surrement a cause de windows, ce que je
veux n'y est p-e pas possible .. en fait pour eclaircir un peu mon
propos, ce que j'aurais voulu c'est la scrollbar en mode text (c'était
p-e que sur les vieux emacs je sais pas)



si si ca marche autant pour moi (falait que je relance emacs pour le voir)
Avatar
drkm
roger21 writes:

roger21 wrote:

(push '(vertical-scroll-bars . left) default-frame-alist)


bon ca ca marche pas mais c'est surrement a cause de windows, ce que
je veux n'y est p-e pas possible .. en fait pour eclaircir un peu
mon propos, ce que j'aurais voulu c'est la scrollbar en mode text
(c'était p-e que sur les vieux emacs je sais pas)



si si ca marche autant pour moi (falait que je relance emacs pour le voir)



Ha ben voui :-) Je me disais aussi.

--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html
Avatar
drkm
roger21 writes:

drkm wrote:

roger21 writes:

d'abord j'ai un petit soucis : je perd ma config (notamant les polices
du .emacs) quand j'ouvre une nouvelle fenetre (carde) avec C-X 5 2
qu'est-ce qu'il faut que je fasse pour que ma config soit
autiomatiquement transmise aux nouvelles fenetres ?



Je ne m'y connais pas du tout dans ce qui a trait aux polices.
Peut-être serait-ce intéressant que tu postes ce qui se trouve dans
ton <FILE:~/.emacs> à ce sujet.



le voici le voila http://roger21.free.fr/emacs (là y'a pas le point
mais normalement il y est :))



En fait, il semble que cela à trait également à `default-frame-alist'.
Essaie :

(push '(font . "-outline-Bitstream Vera Sans Mono-normal-r-normal-normal-15-112-96-96-c-*-iso10646-1")
default-frame-alist)

Remarque : l'indentation, ici, est pour distinguer le code du corps du
message. Tu peux l'enlever dans ton fichier :-) Sélectionne la
région, puis `M-x indent-region'.

[...]

impressionnant !!
je m'attendais pas trop a ca mais c'est complettement terrible donc ca
devrait aller y'a juste un soucis c'est qu'il recherche aussi dans le
buffer créé (c'est un peu paradoxal) du coup y'a les infos en double
... enfin c'est pas vraiment un problème ... y faut que j'apprenne a
faire ce genre de fonctions ... merci grandement



Je t'avais prévenu : je ne l'ai pas vraiment testée. Essaie cette
modification :

(defun all-buffers-occur1 (buffer)
"FIXME<docstring>: ..."
(when (not (memq buffer (list output (get-buffer "*Occur*"))))
(set-buffer buffer)
(occur regexp nlines)
(let ((occur-buf (get-buffer "*Occur*")))
(when occur-buf
(set-buffer occur-buf)
(let ((content (buffer-string)))
(set-buffer output)
(insert content))))))

--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html
Avatar
roger21
drkm wrote:
le voici le voila http://roger21.free.fr/emacs (là y'a pas le point
mais normalement il y est :))




En fait, il semble que cela à trait également à `default-frame-alist'.
Essaie :

(push '(font . "-outline-Bitstream Vera Sans Mono-normal-r-normal-normal-15-112-96-96-c-*-iso10646-1")
default-frame-alist)



parfait, j'en ai profoité pour definir la taille et la position de ma
nouvelle frame avec cette variable et la doc en ligne :) merci

impressionnant !!
je m'attendais pas trop a ca mais c'est complettement terrible donc ca
devrait aller y'a juste un soucis c'est qu'il recherche aussi dans le
buffer créé (c'est un peu paradoxal) du coup y'a les infos en double
... enfin c'est pas vraiment un problème ... y faut que j'apprenne a
faire ce genre de fonctions ... merci grandement




Je t'avais prévenu : je ne l'ai pas vraiment testée. Essaie cette
modification :

(defun all-buffers-occur1 (buffer)
"FIXME<docstring>: ..."
(when (not (memq buffer (list output (get-buffer "*Occur*"))))
(set-buffer buffer)
(occur regexp nlines)
(let ((occur-buf (get-buffer "*Occur*")))
(when occur-buf
(set-buffer occur-buf)
(let ((content (buffer-string)))
(set-buffer output)
(insert content))))))



c'est bon, ca fait plus cette espece de recurence maais je viens de
détecter un autre probleme que j'avais pas vu (ca ne doit pas venir des
modifs) c'est qu'en fait ca renvoie plusieurs fois le meme resultat :
je te mes des exemples pour expliquer
exemple 1 - recherche d'une fonction sur un ensemble de fichiers ouverts
http://roger21.free.fr/all_buffer_occur_1
exemple 2 - recherche de la lettre f sur le meme ensemble de fichiers
http://roger21.free.fr/all_buffer_occur_f
je mets des example pasque ces redondances ne sont pas très cohérentes ...
sinon un truc beaucoup plus simple je pense c'est a propos de buffer
*occur*, quand on fait une deuxiemme recherche, ce buffer est aussi
utilisé pour recherché et donc ca donne des info inutiles, je me disait
que ca serait un solution de le killer automatiquement une fois le
resultat affiché dans *all_buffer_occur*

mais tous ca n'est pas très important parceque l'information recherché
je l'ai donc te prends pas la tete avec et puis je me dis que j'ai bien
envie d'essayer de debugger moi meme un jour quand j'aurais appris un
peu d'elisp

par contre je me demandais si c'était faisable ou carrement fou d'être
redirigé automatiquement sur le buffer recherché à la ligne voulu quand
on selection une ligne dans les resultats de *all_buffer_occur* et qu'on
appuyant sur <RET>

merci pour tout en tout cas
Avatar
drkm
roger21 writes:

[...]

Je viens de voir que sur mon 21.3.50, je dispose de `multi-occur()'.
A priori, c'est ce que tu cherches. Si tu as encore un 21.3, je te
conseille d'installer une version CVS. Il y a pas mal de changements
depuis la version stable, et je ne sais pas si le 21.4 ou 22.1 verra
finalement le jour de sitôt.

--drkm, en recherche d'un stage : http://www.fgeorges.org/ipl/stage.html