91 votes

Comment puis-je insérer la date et l'heure actuelles dans un fichier en utilisant Emacs?

Quelles commandes dans Emacs puis-je utiliser pour insérer dans le tampon de texte d'un fichier la date et l'heure actuelles ?

(Par exemple, l'équivalent dans Notepad est simplement d'appuyer sur F5, qui est à peu près la seule fonction utile de Notepad !)

2 votes

Ctrl+G dans le bloc-notes ouvre la boîte de dialogue "Aller à la ligne", c'est aussi utile!

1voto

Brendan Foote Points 624

Pour une réponse similaire à celles déjà postées, ainsi que des explications et des extensions supplémentaires telles que l'ouverture automatique d'un fichier et l'insertion de la date actuelle à la fin (comme un journal), consultez la discussion de Paul Ford sur ses utilitaires emacs.

0voto

kaushalmodi Points 98

Voici ce que j'en pense.

(defun modi/insert-time-stamp (option)
  "Insérer la date, l'heure, le nom d'utilisateur - DWIM.

Si le point n'est PAS dans un commentaire/chaîne, le tampon de temps est inséré préfixé
avec les caractères `comment-start'.

Si le point est DANS un commentaire/chaîne, le tampon de temps est inséré sans les
caractères `comment-start'. Si le tampon de temps n'est pas inséré immédiatement
après les caractères `comment-start' (suivis d'un espace facultatif),
le tampon de temps est inséré avec le préfixe “--”.

Si le buffer est dans un mode majeur où la variable `comment-start' est nulle, aucun préfixe n'est
ajouté quel que soit.

Contrôle supplémentaire :

        C-u -> Seuls les préfixes `comment-start'/`--' NE sont pas insérés
    C-u C-u -> Seul le nom d'utilisateur n'est PAS inséré
C-u C-u C-u -> 
Les deux préfixes et le nom d'utilisateur ne sont pas insérés."
  (interactive "P")
  (let ((current-date-time-format "%a %b %d %H:%M:%S %Z %Y"))
    ;; Insérer un espace s'il n'y a pas d'espace à gauche du point actuel
    ;; et ce n'est pas au début d'une ligne
    (when (et (non (looking-back "^ *"))
               (non (looking-back " ")))
      (insert " "))
    ;; Insérer le préfixe seulement si `comment-start' est défini pour le mode majeur
    (when (stringp comment-start)
      (si (ou (nth 3 (syntax-ppss)) ; chaîne
              (nth 4 (syntax-ppss))) ; commentaire
          ;; Si le point est déjà dans un commentaire/chaîne
          (progn
            ;; Si le point n'est pas immédiatement après les caractères `comment-start'
            ;; (suivis d'un espace facultatif)
            (quand (et (non (ou (égal option '(4)) ; C-u ou C-u C-u C-u
                                (égal option '(64))))
                       (non (looking-back (concat comment-start " *")))
                       (non (looking-back "^ *")))
              (insert "--")))
        ;; Si le point n'est PAS dans un commentaire
        (progn
          (quand (non (ou (égal option '(4)) ; C-u ou C-u C-u C-u
                         (égal option '(64))))
            (insert comment-start)))))
    ;; Insérer un espace s'il n'y a pas d'espace à gauche du point actuel
    ;; et ce n'est pas au début d'une ligne
    (when (et (non (looking-back "^ *"))
               (non (looking-back " ")))
      (insert " "))
    (insert (format-time-string current-date-time-format (current-time)))
    (quand (non (égal option '(16))) ; C-u C-u
      (insert (concat " - " (getenv "USER"))))
    ;; Insérer un espace après le tampon de temps s'il n'est pas à la fin de la ligne
    (when (non (looking-at " *$"))
      (insert " "))))

Je préfère lier cela à C-c d.

0voto

Saj Points 433

Ce message est apparu lorsque je cherchais un moyen facile d'insérer la date et l'heure actuelle. Mais aucune des réponses ne montrait le moyen le plus simple d'insérer également l'heure. Après un peu plus de recherches, j'ai trouvé la réponse ...

C-u C-c . pour insérer un timestamp actif avec la date et l'heure actuelles.

C-u C-c ! pour insérer un timestamp inactif avec la date et l'heure actuelles.

Omettez C-u pour simplement la date, sans heure, comme l'a posté Misho.

Cela n'a pas les effets secondaires comme la réponse de eclecticx.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X