Bewerten Sie eine Variable, wenn Sie Text in einen Puffer einfügen

Oct 29 2020

Wenn ich eine neue Datei zum Codieren öffne, füge ich gerne einen Header wie den folgenden ein:

#####################################################################   
# Purpose:
# Author: me ([email protected])
# Date:
#####################################################################   

Ich halte diesen Text in einer Datei mit dem Namen headerin ~/.emacs.d/und ich es wie so ein:

;; Insert header to file 
(defun header()
  "Insert header into file"
  (interactive)
  (insert-file "~/.emacs.d/header")) 

mit dem ich anrufe M+x header. Sehr cool! Ich habe auch eine Funktion zum Hinzufügen des Datums:

;; Insert today's date
(defun today ()
  "Insert today's date"
  (interactive)
  (insert (format-time-string "%Y-%m-%d")))  

mit dem ich M+x todaynach dem Einfügen meines Kopfzeilentextes aufrufe, um das Date:Feld zu füllen .

F: Gibt es eine Möglichkeit, diese Funktionen so zusammenzuführen, dass das Datum nach dem Einfügen meines Kopfzeilentextes automatisch eingefügt wird Date:? Kann ich zum Beispiel (format-time-string "%Y-%m-%d")nachher Date:in meine headerDatei einfügen und sie beim Einfügen irgendwie auswerten?

Antworten

2 aadcg Oct 29 2020 at 22:58

Innerhalb von GNU Emacs ist nur Ihre Fantasie die Grenze :)

Ich denke, Sie suchen nach etwas in der folgenden Richtung, obwohl einige Anpassungen erforderlich sein könnten.

(defun header()
  "Insert header into file"
  (interactive)
  (insert-file "~/.emacs.d/header")
  (re-search-backward "Date:")
  (insert (format-time-string "%Y-%m-%d")))