Forum général.général Quelques questions à propos d'Emacs

Posté par .
Tags : aucun
0
3
fév.
2006
Bonjour,

J'ai plusieurs question concernant emacs, et un problème.

1- Est-il possible d'augmenter la fréquence des enregistrements automatiques ? Je n'ai pas trouvé d'options correspondantes en faisant C-h v.

2- Comment fait-on pour autoriser le déplacement du curseur de haut en bas, à l'intérieur d'une ligne qui est affiché sur plusieurs lignes ?

3- Peut-on modifier la taille du curseur ?

4- Peut-on définir des abréviations inversées dont le déclencheur contient plusieurs mots, ou un mot précédé/suivi d'un signe de ponctuation ? Peut-on faire en sorte que le mode abbrev soit sensible à la casse ?

Mon but est d'utiliser les modes nxml, abbrev et flyspell en même temps, pour certains fichiers seulement. J'aimerais ne pas avoir à charger ces trois modes les uns après les autres à chaque fois. La seule solution que j'ai trouvé consiste à créer un mode qui regrouperait les trois modes.

J'ai commencé ceci :

;; Create mode-specific tables.
(defvar cours-mode-syntax-table nil
"Syntax table used while in text mode.")

(if cours-mode-syntax-table
() ; Do not change the table if it is already set up.
(setq cours-mode-syntax-table (make-syntax-table))
(modify-syntax-entry ?\" ". " cours-mode-syntax-table)
(modify-syntax-entry ?\\ ". " cours-mode-syntax-table)
(modify-syntax-entry ?' "w " cours-mode-syntax-table))

(defvar cours-mode-abbrev-table nil
"Abbrev table used while in cours mode.")
(define-abbrev-table 'cours-mode-abbrev-table ())

(defvar cours-mode-map nil ; Create a mode-specific keymap.
"Keymap for Text mode.
Many other modes, such as Mail mode, Outline mode and Indented Text mode,
inherit all the commands defined in this map.")

(if cours-mode-map
() ; Do not change the keymap if it is already set up.
(setq cours-mode-map (make-sparse-keymap))
(define-key cours-mode-map "\e\t" 'ispell-complete-word)
(define-key cours-mode-map "\t" 'indent-relative)
(define-key cours-mode-map "\es" 'center-line)
(define-key cours-mode-map "\eS" 'center-paragraph))

(defun cours-mode ()
"Mode majeur pour éditer mes cours...
Special commands: \\{cours-mode-map}
Turning on cours-mode runs the hook `cours-mode-hook'."
(interactive)
; (kill-all-local-variables)
(use-local-map cours-mode-map)
(setq local-abbrev-table global-abbrev-table)
(set-syntax-table cours-mode-syntax-table)
(setq mode-name "Cours")
(setq major-mode 'cours-mode)
(setq nxml-mode t)
(setq abbrev-mode t)
(run-hooks 'nxml-mode-hook 'cours-mode-hook 'abbrev-mode-hook))
)


Ca fonctionne pas mal, mais les options que j'ai précisées dans mon .emacs.el ne sont pas prises en compte. Par exemple, j'ai ceci :

(custom-set-variables
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(nxml-slash-auto-complete-flag t))

Cette option fait en sorte que les tags xml sont fermés automatiquement lorsque que je tape >/
Ca fonctionne bien quand je charge le mode nxml, mais pas quand je charge mon mode.

Merci d'avance pour les indications que vous voudrez bien me donner...
  • # auto-save-interval & auto-save-timeout

    Posté par . Évalué à 3.

    Pour la première question, auto-save-interval et auto-save-timeout devraient te permettre de régler ce que tu veux.

    Pour la deuxième, ce n'est pas trop dans l'idée d'emacs en fait, donc je ne pense pas qu'il y ait un moyen simple (à part casser tes lignes avec M-x fill-region, mais ce n'est surement pas ce que tu veux. Ou alors définir un raccourci qui va de 80 caractères en arrière ou en avant).

    la suite je ne sais pas.
    • [^] # Re: auto-save-interval & auto-save-timeout

      Posté par . Évalué à 1.

      Merci beaucoup !

      Pour la question 2, il me semblait avoir vu certains modes qui le faisaient. Mais ce n'est pas bien grave.
      • [^] # Re: auto-save-interval & auto-save-timeout

        Posté par . Évalué à 3.

        Lors de l'édition de textes (LateX ou HTML, enfin un mode ou les retours a la ligne ne sont pas importants), il est possible d'utiliser auto-fill (souvent activé par défaut dans ces modes), mais il y a un autre mode bien utile: longlines.el. Il rajoute des retours à la ligne "softs", c'est à dire qui ne sont pas enregistrés.

        Le gros avantage de ce mode, c'est que si on prend le soin d'insérer un retour chariot après chaque phrase, l'utilisation d'outils comme diff est simplifiée: avec l'auto-fill, une modification en début de paragraphe va modifier tous les retours à la ligne du paragraphe, alors qu'avec longlines, on ne touche qu'à la phrase qui a été modifiée. Lorsqu'on cherche a connaitre les différences entre deux versions, la seconde méthode est beaucoup plus confortable.

        Et comme durant l'édition, chaque fin de ligne contient un retour chariot, il est possible de se déplacer de haut en bas dans un paragraphe.

        Cyril
      • [^] # longlines.el

        Posté par . Évalué à 2.

        peut être que ce mode peut t'aider? En gros, il casse les lignes sur le buffer en cours, mais garde les longues lignes sur le fichier lui même.

        http://www.geocities.com/kensanata/elisp/longlines.el.txt

        Je ne l'ai pas testé, donc je ne sais pas ce que ça vaut...

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.