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

Indentation et AucTeX

9 réponses
Avatar
Frédéric
Bonjour,

j'aurais aim=E9 savoir si l'on pouvait, et surtout comment, reformatter
avec AucTeX un texte d=E9j=E0 tap=E9. Par exemple, si je modifie la
structure d'un texte, en pla=E7ant des =E9num=E9rations apr=E8s coup, il
faudrait que j'indente tout le texte qui va se placer dans
l'=E9num=E9ration. Des =E9diteurs comme Eclipse proposent de reformater le
texte, en recalculant toutes les indentations. Je suppose (je ne
prends pas trop de risque) que c'est faisable avec emacs et AucTeX,
mais je n'ai pas trouv=E9 comment (il faut dire que je d=E9bute =E0 peine
l'utilisation d'emacs).

Merci d'avance,

Fr=E9d=E9ric

9 réponses

Avatar
Paul Gaborit
À (at) Tue, 8 Apr 2008 06:39:59 -0700 (PDT),
Frédéric écrivait (wrote):
j'aurais aimé savoir si l'on pouvait, et surtout comment, reformatter
avec AucTeX un texte déjà tapé. Par exemple, si je modifie la
structure d'un texte, en plaçant des énumérations après coup, il
faudrait que j'indente tout le texte qui va se placer dans
l'énumération. Des éditeurs comme Eclipse proposent de reformater le
texte, en recalculant toutes les indentations. Je suppose (je ne
prends pas trop de risque) que c'est faisable avec emacs et AucTeX,
mais je n'ai pas trouvé comment (il faut dire que je débute à peine
l'utilisation d'emacs).



Il suffit de sélectionner la zone voulue puis d'appeler la fonction
'indent-region' :

M-x indent-region

Ou via le raccourci suivant :

C-M-

Ça marche avec AucTeX, mais aussi dans n'importe quel mode qui sait
faire de l'indentation automagique.


--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Avatar
Ph. Ivaldi
Le 08 avril 2008, Paul Gaborit écrivit :

Il suffit de sélectionner la zone voulue puis d'appeler la fonction
'indent-region' :

M-x indent-region



On peut aussi définir un raccourci pour indenter tout le buffer sans
avoir à sélectionner une région:

;; -------------------------
;; * Indent tout le buffer *
(defun pi-indent-all ()
(interactive)
(save-excursion
(indent-region (point-min) (point-max))))
(global-set-key (kbd "<C-S-iso-lefttab>") 'pi-indent-all)

--
Philippe Ivaldi.
http://piprim.tuxfamily.org/
Avatar
Frédéric
Merci à vous deux.

;; -------------------------
;; * Indent tout le buffer *
(defun pi-indent-all ()
  (interactive)
  (save-excursion
    (indent-region (point-min) (point-max))))
(global-set-key (kbd "<C-S-iso-lefttab>") 'pi-indent-all)




Oserais-je te demander la signification de ces lignes ? Allez, j'ose :)
Avatar
Erwan David
Frédéric écrivait :

Merci à vous deux.

;; -------------------------
;; * Indent tout le buffer *
(defun pi-indent-all ()
  (interactive)
  (save-excursion
    (indent-region (point-min) (point-max))))
(global-set-key (kbd "<C-S-iso-lefttab>") 'pi-indent-all)




Oserais-je te demander la signification de ces lignes ? Allez, j'ose :)



(defun pi-indent-all ()
; définition d'une fonction pi-indent-all
  (interactive)
;fonction interactive (peut être appelée par l'utilisateur)
  (save-excursion
; on sauve les positions du point et de la marque
    (indent-region (point-min) (point-max))))
On indente entre le début du buffer, et sa fin

(global-set-key (kbd "<C-S-iso-lefttab>") 'pi-indent-all)
et on affecte le tout à la touche Conrol-Shift tab vers la gauche
(quelle touche est-ce ?)

--
Le travail n'est pas une bonne chose. Si ça l'était,
les riches l'auraient accaparé
Avatar
Matthieu Moy
Erwan David writes:

  (save-excursion
; on sauve les positions du point et de la marque
    (indent-region (point-min) (point-max))))
; On indente entre le début du buffer, et sa fin



D'ailleurs, vu que ni (point-min) ni (point-max) ne bougent le
curseur, je pense que le `save-excursion' est facultatif.

--
Matthieu
Avatar
Erwan David
Matthieu Moy écrivait :

Erwan David writes:

  (save-excursion
; on sauve les positions du point et de la marque
    (indent-region (point-min) (point-max))))
; On indente entre le début du buffer, et sa fin



D'ailleurs, vu que ni (point-min) ni (point-max) ne bougent le
curseur, je pense que le `save-excursion' est facultatif.



Je pense aussi, cependant prendre l'habitude de mettre des
save-excursion dans ses fonctions n'est pas forcément mauvais.

--
Le travail n'est pas une bonne chose. Si ça l'était,
les riches l'auraient accaparé
Avatar
Frédéric
Merci pour tout :)
Avatar
Olivier
Matthieu Moy a écrit :
[...]
D'ailleurs, vu que ni (point-min) ni (point-max) ne bougent le
curseur, je pense que le `save-excursion' est facultatif.



A priori indent-region contient un save-excursion, mais
ce n'est pas garanti :-p
Oui, c'est tordu, mais si on a une fonction d'indentation
maison qui n'est pas encapsulée dans un save-excursion,
tatata !
Bon, je pinaille au lieu de travailler, je sais --
Amitiés,
Olivier
Avatar
Ph. Ivaldi
Le 10 avril 2008, Olivier écrivit :

A priori indent-region contient un save-excursion, mais
ce n'est pas garanti :-p
Oui, c'est tordu, mais si on a une fonction d'indentation
maison qui n'est pas encapsulée dans un save-excursion,
tatata !



Suffit de coder une fonction maison qui parse le code de
indent-region pour savoir si on doit utiliser save-excursion ou pas.
Grand jeux-concours: coder save-excursion-maybe

Bon, je pinaille au lieu de travailler



j'peux me permettre, j'suis en vacance :-)
--
Philippe Ivaldi.
http://piprim.tuxfamily.org/