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!

149voto

C-u M-! date

48voto

CMS Points 315406

Insérez ceci dans votre fichier .emacs :

;; ====================
;; insérer la date et l'heure

(defvar current-date-time-format "%a %b %d %H:%M:%S %Z %Y"
  "Format de la date à insérer avec la fonction `insert-current-date-time'
Consultez l'aide de `format-time-string' pour les remplacements possibles")

(defvar current-time-format "%a %H:%M:%S"
  "Format de l'heure à insérer avec la fonction `insert-current-time'.
Notez la portée hebdomadaire de la précision de la commande.")

(defun insert-current-date-time ()
  "insérer la date et l'heure actuelles dans le tampon en cours.
Utilise `current-date-time-format' pour le formatage de la date/heure."
       (interactive)
       (insert "==========\n")
       ;(insert (let () (comment-start)))
       (insert (format-time-string current-date-time-format (current-time)))
       (insert "\n")
       )

(defun insert-current-time ()
  "insérer l'heure actuelle (portée d'1 semaine) dans le tampon en cours."
       (interactive)
       (insert (format-time-string current-time-format (current-time)))
       (insert "\n")
       )

(global-set-key "\C-c\C-d" 'insert-current-date-time)
(global-set-key "\C-c\C-t" 'insert-current-time)

Référence

3 votes

Je me sers de quelque chose de similaire à cela, mais je le modifie de C-c C-t à C-x C-t car C-c C-t gêne le raccourci "Marquer l'élément TODO" de org-mode. Malheureusement, celui-ci est ancré dans ma mémoire musculaire :)

0 votes

"\C-c\C-d" rien ne se passe pour moi. En fait, cela supprime la ligne actuelle lorsque C-d est tapé. Mais je pense que c'est pourquoi C-c ne fonctionne pas.

0 votes

Le manuel Emacs Lisp recommande C-c lettre pour les raccourcis clavier définis par l'utilisateur. Donc modifier "\C-c\C-d" en (kbd "C-c d") devrait éviter les conflits avec les modes majeurs.

36voto

Michael Paulukonis Points 4757

J'ai utilisé ces courts extraits de code :

(defun now ()
  "Insérer une chaîne pour l'heure actuelle formatée comme '2:34 PM'."
  (interactive)                 ; permet l'invocation dans le minibuffer
  (insert (format-time-string "%D %-I:%M %p")))

(defun today ()
  "Insérer une chaîne pour la date d'aujourd'hui joliment formatée dans le style américain,
par exemple Dimanche, Septembre 17, 2000."
  (interactive)                 ; permet l'invocation dans le minibuffer
  (insert (format-time-string "%A, %B %e, %Y")))

Ils viennent à l'origine de journal.el

2 votes

Merci. très bien. pour toute personne qui est complètement débutante à Emacs: Utilisez ceci en l'ajoutant à votre fichier .emacs. et enregistrer, puis déplacez votre curseur (point) à la parenthèse de fin de chaque fonction et ensuite M-x M-e pour chaque. Maintenant, vous pouvez insérer en utilisant M-x now ou M-x today où vous voulez.

29voto

tangxinfa Points 106

Pour insérer la date :

M-x org-time-stamp

Pour insérer la date et l'heure :

C-u M-x org-time-stamp

Vous pouvez attribuer une touche globale à cette commande.

La méthode de org-mode est très conviviale, vous pouvez sélectionner n'importe quelle date dans le calendrier.

0 votes

Est-ce qu'il y a un moyen de le formater différemment que le format de date org-mode?

1 votes

Le format de date et d'heure inséré par org-time-stamp est spécifié par org-time-stamp-formats. ;; insérer une date avec un format personnalisé. (let ((org-time-stamp-formats '("%Y-%m-%d" . "%Y-%m-%d %H:%M:%S"))) (org-time-stamp nil)) ;; insérer une date avec un format personnalisé. (let ((org-time-stamp-formats '("%Y-%m-%d" . "%Y-%m-%d %H:%M:%S"))) (org-time-stamp '(4)))

15voto

Marcel Levy Points 2378

Vous pouvez installer yasnippet, qui vous permettra de taper "time" et la touche tabulation, et bien plus encore. Il appelle simplement current-time-string en arrière-plan, vous permettant de contrôler le format en utilisant format-time-string.

2 votes

Yasnippet est un gouffre de ressources par rapport aux modèles intégrés et à hippie-expand.

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