كيف يمكنني إدراج التاريخ والوقت الحالي إلى ملف باستخدام إيماكس؟

StackOverflow https://stackoverflow.com/questions/251908

سؤال

وماذا الأوامر في إيماكس يمكنني استخدامها لإدراج في المخزن المؤقت نص ملف التاريخ والوقت الحالي؟

(على سبيل المثال، أي ما يعادل في المفكرة هو ببساطة الضغط على F5 وهي عبارة عن ميزة مفيدة فقط لالمفكرة!)

هل كانت مفيدة؟

المحلول

C-u M-! date

نصائح أخرى

وضعت في ملف .emacs الخاص بك:

;; ====================
;; insert date and time

(defvar current-date-time-format "%a %b %d %H:%M:%S %Z %Y"
  "Format of date to insert with `insert-current-date-time' func
See help of `format-time-string' for possible replacements")

(defvar current-time-format "%a %H:%M:%S"
  "Format of date to insert with `insert-current-time' func.
Note the weekly scope of the command's precision.")

(defun insert-current-date-time ()
  "insert the current date and time into current buffer.
Uses `current-date-time-format' for the formatting the date/time."
       (interactive)
       (insert "==========\n")
;       (insert (let () (comment-start)))
       (insert (format-time-string current-date-time-format (current-time)))
       (insert "\n")
       )

(defun insert-current-time ()
  "insert the current time (1-week scope) into the current buffer."
       (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)

المرجعي

ولقد استعملت هذه قصاصات قصيرة:

(defun now ()
  "Insert string for the current time formatted like '2:34 PM'."
  (interactive)                 ; permit invocation in minibuffer
  (insert (format-time-string "%D %-I:%M %p")))

(defun today ()
  "Insert string for today's date nicely formatted in American style,
e.g. Sunday, September 17, 2000."
  (interactive)                 ; permit invocation in minibuffer
  (insert (format-time-string "%A, %B %e, %Y")))

وجاءوا أصلا من journal.el

ويمكنك تثبيت yasnippet ، والتي سوف تسمح لك اكتب "الوقت" ومفتاح التبويب ، ويفعل الكثير كله أكثر إلى جانب. انها مجرد يدعو current-time-string وراء الكواليس، حتى تتمكن من السيطرة على التنسيق باستخدام format-time-string.

لأدخل التاريخ:

M-x org-time-stamp

لوقت أدخل التاريخ:

C-u M-x org-time-stamp

ويمكنك ربط مفتاح العالمي لهذا الأمر.

وطريقة org-mode هو جدا سهل الاستعمال، يمكنك تحديد أي تاريخ من التقويم.

وفيما يلي مجموعة كتبت منذ فترة أن يفعل ما كنت طالبا.

http://github.com/rmm5t /insert-time.el/tree/master/insert-time.el

(require 'insert-time)
(define-key global-map [(control c)(d)] 'insert-date-time)
(define-key global-map [(control c)(control v)(d)] 'insert-personal-time-stamp)

وM-1 M-! تاريخ

وهذا يسبب الأمر قذيفة تشغيل لإدراجها في المخزن المؤقت كنت تقوم بتحرير حاليا بدلا من منطقة عازلة جديدة.

شكرا، CMS! بلدي الاختلاف، على ما يستحق - يجعلني سعيدا بما فيه الكفاية:

(defvar bjk-timestamp-format "%Y-%m-%d %H:%M"
  "Format of date to insert with `bjk-timestamp' function
%Y-%m-%d %H:%M will produce something of the form YYYY-MM-DD HH:MM
Do C-h f on `format-time-string' for more info")


(defun bjk-timestamp ()
  "Insert a timestamp at the current point.
Note no attempt to go to beginning of line and no added carriage return.
Uses `bjk-timestamp-format' for formatting the date/time."
       (interactive)
       (insert (format-time-string bjk-timestamp-format (current-time)))
       )

وأنا وضعت هذا في ملف يسمى من قبل .emacs بي باستخدام:

(load "c:/bjk/elisp/bjk-timestamp.el")

وكلاهما يجعل من الاسهل لتعديل دون المخاطرة كسر شيء آخر في .emacs بلدي، وسمح لي مدخلا سهلا إلى ربما في يوم من الأيام فعلا تعلم ما هي هذه البرمجة إيماكس اللثغة كل شيء.

وP.S. الانتقادات بخصوص اسلوبي n00b موضع ترحيب.

لإجابة مشابهة لتلك التي سبق أن نشرت، جنبا إلى جنب مع تفسيرات والمزيد من الملحقات مثل فتح الملف تلقائيا وإدراج التاريخ الحالي في نهاية ذلك (مثل مجلة)، تحقق من <لأ href = "HTTP: / /www.ftrain.com/util_emacs_hints.html "يختلط =" نوفولو noreferrer "> مناقشة بول فورد من ايماكس له المرافق .

وهنا بلدي يأخذ على ذلك.

(defun modi/insert-time-stamp (option)
  "Insert date, time, user name - DWIM.

If the point is NOT in a comment/string, the time stamp is inserted prefixed
with `comment-start' characters.

If the point is IN a comment/string, the time stamp is inserted without the
`comment-start' characters. If the time stamp is not being inserted immediately
after the `comment-start' characters (followed by optional space),
the time stamp is inserted with “--” prefix.

If the buffer is in a major mode where `comment-start' var is nil, no prefix is
added regardless.

Additional control:

        C-u -> Only `comment-start'/`--' prefixes are NOT inserted
    C-u C-u -> Only user name is NOT inserted
C-u C-u C-u -> Both prefix and user name are not inserted."
  (interactive "P")
  (let ((current-date-time-format "%a %b %d %H:%M:%S %Z %Y"))
    ;; Insert a space if there is no space to the left of the current point
    ;; and it's not at the beginning of a line
    (when (and (not (looking-back "^ *"))
               (not (looking-back " ")))
      (insert " "))
    ;; Insert prefix only if `comment-start' is defined for the major mode
    (when (stringp comment-start)
      (if (or (nth 3 (syntax-ppss)) ; string
              (nth 4 (syntax-ppss))) ; comment
          ;; If the point is already in a comment/string
          (progn
            ;; If the point is not immediately after `comment-start' chars
            ;; (followed by optional space)
            (when (and (not (or (equal option '(4)) ; C-u or C-u C-u C-u
                                (equal option '(64))))
                       (not (looking-back (concat comment-start " *")))
                       (not (looking-back "^ *")))
              (insert "--")))
        ;; If the point is NOT in a comment
        (progn
          (when (not (or (equal option '(4)) ; C-u or C-u C-u C-u
                         (equal option '(64))))
            (insert comment-start)))))
    ;; Insert a space if there is no space to the left of the current point
    ;; and it's not at the beginning of a line
    (when (and (not (looking-back "^ *"))
               (not (looking-back " ")))
      (insert " "))
    (insert (format-time-string current-date-time-format (current-time)))
    (when (not (equal option '(16))) ; C-u C-u
      (insert (concat " - " (getenv "USER"))))
    ;; Insert a space after the time stamp if not at the end of the line
    (when (not (looking-at " *$"))
      (insert " "))))

وأنا أفضل أن ربط هذا C-c d.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top