Indentation et AucTeX

Le
Frédéric
Bonjour,

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

Merci d'avance,

Frédéric
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Paul Gaborit
Le #21779461
À (at) Tue, 8 Apr 2008 06:39:59 -0700 (PDT),
Frédéric
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 -
Ph. Ivaldi
Le #21779451
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/
Frédéric
Le #21779441
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 :)
Erwan David
Le #21779431
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 :)



(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é
Matthieu Moy
Le #21779421
Erwan David
  (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
Erwan David
Le #21779411
Matthieu Moy
Erwan David
  (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é
Frédéric
Le #21779401
Merci pour tout :)
Olivier
Le #21779381
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
Ph. Ivaldi
Le #21779371
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/
Publicité
Poster une réponse
Anonyme