Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

Retourner aux forums || Retourner au forum Astuces.divers

Astuces.divers : [Éditeur/Emacs] Incrément

Posté par G. R. (page perso, ) le 02 avril 2002
Voici une fonction et une macro pour emacs qui permmettent d'incrémenter un nombre automatiquement :

;; Incrémente et copie
(defun add-number (arg)
"Add arg to number under cursor. If no arg, add 1."
(interactive "p")
(insert (format " %d" (+ (read (current-buffer)) arg)))
(backward-word 1))
(global-set-key "C-cC-i" 'add-number)

;; Incrémente sur place
(fset 'inc
[?C-c ?C-i ?C- C-left ?C-w])
(global-set-key "C-ci" 'inc)

> Lire le message (3 commentaires, moyenne: 1).  

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

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

avec vim :

Posté par gwen () le 06/08/2002 à 00:20. (lien). Évalué à 1.

ctrl-a incremente
ctrl-x decrement

  • [^]Re: avec vim :

    Posté par Boa Treize (page perso, ) le 19/10/2002 à 20:29. (lien). Évalué à 1.

    à propos de Vim:

    Les commandes Ctrl-A et Ctrl-X (en mode normal) fonctionnent avec des nombres décimaux, hexadécimaux, octaux, et également avec les lettres de l'alphabet.

    L'option nrformats (nf en abrégé) sert à indiquer à Vim quelles bases il doit reconnaître et lesquelles il doit ignorer. Par défaut, elle vaut octal,hex (décimal est toujours actif) ce qui est un peu irritant quant on veut incrémenter un nombre tel que 07 (qui devient 010, vive l'octal).

    Bref, si ça vous énerve autant que moi, un petit "set nf=hex" dans votre fichier .vimrc devrait corriger le problême.

    Bien sûr, :help 'nf' :help ctrl-a et :help ctrl-x pour plus d'informations.

Numérotation automatique d'une playlist

Posté par hocwp (page perso, ) le 31/03/2005 à 14:25. (lien). Évalué à 1.

Pour en rajouter une couche, vous pouvez definir la macro qui permet d'aller à la ligne, incrémenter le nombre et rajouter les espaces/zero automatiquement :

(fset 'copy-to-nextline-and-inc
      [?\C-  C-right ?\M-w down home ?\C-y ?  home ?\C-c ?i ?0])
(global-set-key (read-kbd-macro "C-c C-M-i") 'copy-to-nextline-and-inc)
Vous partez avec la liste :
01 - toto
- plop
- plouf plip
- foo bar
vous placez le curseur sur le 01 et un simple C-u 3 C-c C-M-i et plaf, voici la liste automatiquement numérotée :
01 - toto
02 - plop
03 - plouf plip
04 - foo bar
PS: chez moi, la macro inc serait plutôt :
(fset 'inc
      [?\C-c ?\C-i C-backspace])
PPS: après avoir enregistré la macro avec C-x ( et C-x ), le code est obtenu avec la fonction insert-kbd-macro.

Revenir en haut de page || Retourner aux forums || Retourner au forum Astuces.divers